4 static PanelWindow defaults
= {
7 .orig
= { .x
= 0, .y
= 0 },
12 .hidden
= { .x
= 0, .y
= 0 }
20 .timeout
= { .show
= 10, .hide
= 10, .id
= 0},
28 #include "panel-int-mod.h"
34 #define panel_win (GTK_WINDOW (PANEL_WINDOW (data)->win))
35 static gboolean
on_init (gpointer data
)
37 //gtk_window_get_size (panel_win);
40 gtk_window_resize (panel_win
, 100, 40);
45 PanelWindow
* panelWindow_Alloc (void)
46 { return malloc (sizeof (PanelWindow
)); }
48 void panelWindow_Init (PanelWindow
* panel
)
53 screen
= gdk_screen_get_default ();
54 panel
->scr
.h
= gdk_screen_get_height (screen
);
55 panel
->scr
.w
= gdk_screen_get_width (screen
);
57 panel
->win
= gtk_window_new (GTK_WINDOW_TOPLEVEL
);
59 gtk_window_set_type_hint (GTK_WINDOW (panel
->win
), GDK_WINDOW_TYPE_HINT_DOCK
);
60 gtk_window_set_decorated (GTK_WINDOW (panel
->win
), FALSE
);
62 gtk_widget_set_events (panel
->win
, GDK_ALL_EVENTS_MASK
);
63 gtk_window_set_accept_focus (GTK_WINDOW (panel
->win
), TRUE
);
64 gtk_widget_set_can_focus (panel
->win
, TRUE
);
67 gtk_window_set_position (GTK_WINDOW (panel
->win
), GTK_WIN_POS_NONE
);
70 g_signal_connect (G_OBJECT (panel
->win
), "size-allocate", G_CALLBACK (on_resize
), panel
);
71 g_signal_connect (G_OBJECT (panel
->win
), "size-request", G_CALLBACK (on_size_request
), panel
);
73 panel
->enter_cb_id
= g_signal_connect (G_OBJECT (panel
->win
), "enter-notify-event", G_CALLBACK (on_enter
), panel
);
74 panel
->leave_cb_id
= g_signal_connect (G_OBJECT (panel
->win
), "leave-notify-event", G_CALLBACK (on_leave
), panel
);
75 g_timeout_add (2000, on_init
, panel
);
78 void panelWindow_Side_Set (PanelWindow
* panel
, side_t side
)
80 panel
->docking
.side
= side
;
82 update_window_pos (panel
);
85 void panelWindow_Pos_Set (PanelWindow
* panel
, double pos
)
87 panel
->docking
.pos
= pos
;
89 update_window_pos (panel
);
92 void panelWindow_AH_Toggle (PanelWindow
* panel
, gboolean enabled
)
94 if (panel
->docking
.autohiding
== enabled
) return;
95 panel
->docking
.autohiding
= enabled
;
97 if (enabled
) hide (panel
);
101 void panelWindow_AH_ShowDuration_Set (PanelWindow
* panel
, double sec
)
102 { panel
->docking
.timeout
.show
= 1 + sec
* 1000; }
104 void panelWindow_AH_HideDuration_Set (PanelWindow
* panel
, double sec
)
105 { panel
->docking
.timeout
.hide
= 1 + sec
* 1000; }
107 void panelWindow_AH_Border_Set (PanelWindow
* panel
, guint thickness
)
109 panel
->docking
.border
= thickness
;
111 if (panel
->docking
.visible
)
112 update_window_pos (panel
);