diff options
Diffstat (limited to 'src/ui.c')
-rw-r--r-- | src/ui.c | 84 |
1 files changed, 84 insertions, 0 deletions
@@ -20,9 +20,93 @@ */ #include "ui.h" +#include "frames.h" + +struct _MetaUI +{ + Display *xdisplay; + Screen *xscreen; + MetaFrames *frames; +}; void meta_ui_init (int *argc, char ***argv) { gtk_init (argc, argv); } + +MetaUI* +meta_ui_new (Display *xdisplay, + Screen *screen) +{ + MetaUI *ui; + + ui = g_new (MetaUI, 1); + ui->xdisplay = xdisplay; + ui->xscreen = screen; + + /* FIXME when gtk has multihead use it here */ + ui->frames = meta_frames_new (); + gtk_widget_realize (GTK_WIDGET (ui->frames)); + + return ui; +} + +void +meta_ui_free (MetaUI *ui) +{ + gtk_widget_destroy (GTK_WIDGET (ui->frames)); + + g_free (ui); +} + +void +meta_ui_get_frame_geometry (MetaUI *ui, + Window frame_xwindow, + int *top_height, int *bottom_height, + int *left_width, int *right_width) +{ + meta_frames_get_geometry (ui->frames, frame_xwindow, + top_height, bottom_height, + left_width, right_width); +} + + +void +meta_ui_add_frame (MetaUI *ui, + Window xwindow) +{ + meta_frames_manage_window (ui->frames, xwindow); +} + +void +meta_ui_remove_frame (MetaUI *ui, + Window xwindow) +{ + meta_frames_unmanage_window (ui->frames, xwindow); +} + +void +meta_ui_reset_frame_bg (MetaUI *ui, + Window xwindow) +{ + meta_frames_reset_bg (ui->frames, xwindow); +} + +void +meta_ui_set_frame_flags (MetaUI *ui, + Window xwindow, + MetaFrameFlags flags) +{ + meta_frames_set_flags (ui->frames, xwindow, flags); +} + +void +meta_ui_queue_frame_draw (MetaUI *ui, + Window xwindow) +{ + meta_frames_queue_draw (ui->frames, xwindow); +} + + + |