1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
3 popup.h for the Openbox window manager
4 Copyright (c) 2003-2007 Dana Jansens
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 See the COPYING file for a copy of the GNU General Public License.
24 #include "obrender/render.h"
29 #define POPUP_WIDTH 320
30 #define POPUP_HEIGHT 48
32 typedef struct _ObPopup ObPopup
;
33 typedef struct _ObIconPopup ObIconPopup
;
34 typedef struct _ObPagerPopup ObPagerPopup
;
53 guint iconwm
; /* icon width multiplier. multiplied by the normal width */
54 guint iconhm
; /* icon height multiplier. multipled by the normal height */
56 gboolean delay_mapped
;
59 void (*draw_icon
)(gint x
, gint y
, gint w
, gint h
, gpointer data
);
60 gpointer draw_icon_data
;
80 RrAppearance
*hilight
;
81 RrAppearance
*unhilight
;
84 ObPopup
*popup_new(void);
85 void popup_free(ObPopup
*self
);
87 /*! Position the popup. The gravity rules are not the same X uses for windows,
88 instead of the position being the top-left of the window, the gravity
89 specifies which corner of the popup will be placed at the given coords.
90 Static and Forget gravity are equivilent to NorthWest.
92 void popup_position(ObPopup
*self
, gint gravity
, gint x
, gint y
);
93 /*! Set the sizes for the popup. When set to 0, the size will be based on
95 void popup_height(ObPopup
*self
, gint w
);
96 void popup_min_width(ObPopup
*self
, gint minw
);
97 void popup_max_width(ObPopup
*self
, gint maxw
);
98 void popup_text_width(ObPopup
*self
, gint w
);
99 void popup_text_width_to_string(ObPopup
*self
, gchar
*text
);
100 void popup_height_to_string(ObPopup
*self
, gchar
*text
);
101 void popup_text_width_to_strings(ObPopup
*self
, gchar
**strings
, gint num
);
103 void popup_set_text_align(ObPopup
*self
, RrJustify align
);
105 #define popup_show(s, t) popup_delay_show((s),0,(t))
106 void popup_delay_show(ObPopup
*self
, gulong msec
, gchar
*text
);
107 void popup_hide(ObPopup
*self
);
109 RrAppearance
*popup_icon_appearance(ObPopup
*self
);
112 ObIconPopup
*icon_popup_new(void);
113 void icon_popup_free(ObIconPopup
*self
);
115 #define icon_popup_show(s, t, i) icon_popup_delay_show((s),0,(t),(i))
116 void icon_popup_delay_show(ObIconPopup
*self
, gulong msec
,
117 gchar
*text
, RrImage
*icon
);
118 #define icon_popup_hide(p) popup_hide((p)->popup)
119 #define icon_popup_position(p, g, x, y) popup_position((p)->popup,(g),(x),(y))
120 #define icon_popup_text_width(p, w) popup_text_width((p)->popup,(w))
121 #define icon_popup_height(p, h) popup_height((p)->popup,(h))
122 #define icon_popup_min_width(p, m) popup_min_width((p)->popup,(m))
123 #define icon_popup_max_width(p, m) popup_max_width((p)->popup,(m))
124 #define icon_popup_text_width_to_string(p, s) \
125 popup_text_width_to_string((p)->popup,(s))
126 #define icon_popup_text_width_to_strings(p, s, n) \
127 popup_text_width_to_strings((p)->popup,(s),(n))
128 #define icon_popup_set_text_align(p, j) popup_set_text_align((p)->popup,(j))
129 void icon_popup_icon_size_multiplier(ObIconPopup
*self
, guint wm
, guint hm
);
131 ObPagerPopup
*pager_popup_new(void);
132 void pager_popup_free(ObPagerPopup
*self
);
134 #define pager_popup_show(s, t, d) pager_popup_delay_show((s),0,(t),(d))
135 void pager_popup_delay_show(ObPagerPopup
*self
, gulong msec
,
136 gchar
*text
, guint desk
);
137 #define pager_popup_hide(p) popup_hide((p)->popup)
138 #define pager_popup_position(p, g, x, y) popup_position((p)->popup,(g),(x),(y))
139 #define pager_popup_text_width(p, w) popup_text_width((p)->popup,(w))
140 #define pager_popup_height(p, h) popup_height((p)->popup,(h))
141 #define pager_popup_min_width(p, m) popup_min_width((p)->popup,(m))
142 #define pager_popup_max_width(p, m) popup_max_width((p)->popup,(m))
143 #define pager_popup_text_width_to_string(p, s) \
144 popup_text_width_to_string((p)->popup,(s))
145 #define pager_popup_text_width_to_strings(p, s, n) \
146 popup_text_width_to_strings((p)->popup,(s),(n))
147 #define pager_popup_set_text_align(p, j) popup_set_text_align((p)->popup,(j))
148 void pager_popup_icon_size_multiplier(ObPagerPopup
*self
, guint wm
, guint hm
);