65 static UiObject *active_window; |
65 static UiObject *active_window; |
66 |
66 |
67 static int scale_factor = 1; |
67 static int scale_factor = 1; |
68 |
68 |
69 UIEXPORT void ui_init(const char *appname, int argc, char **argv) { |
69 UIEXPORT void ui_init(const char *appname, int argc, char **argv) { |
|
70 application_name = appname; |
70 uic_init_global_context(); |
71 uic_init_global_context(); |
71 |
72 |
|
73 #if GTK_MAJOR_VERSION >= 4 |
|
74 gtk_init(); |
|
75 #else |
72 gtk_init(&argc, &argv); |
76 gtk_init(&argc, &argv); |
73 application_name = appname; |
77 #endif |
74 |
78 |
75 ui_css_init(); |
79 ui_css_init(); |
76 |
|
77 uic_docmgr_init(); |
80 uic_docmgr_init(); |
78 |
|
79 uic_toolbar_init(); |
81 uic_toolbar_init(); |
80 |
|
81 ui_image_init(); |
82 ui_image_init(); |
82 |
|
83 uic_load_app_properties(); |
83 uic_load_app_properties(); |
84 |
84 |
85 #ifdef UI_SUPPORTS_SCALE |
85 #if GTK_MAJOR_VERSION >= 4 |
|
86 scale_factor = 1; // TODO |
|
87 #elif defined(UI_SUPPORTS_SCALE) |
86 scale_factor = gdk_monitor_get_scale_factor( |
88 scale_factor = gdk_monitor_get_scale_factor( |
87 gdk_display_get_primary_monitor(gdk_display_get_default())); |
89 gdk_display_get_primary_monitor(gdk_display_get_default())); |
88 #endif |
90 #endif |
89 } |
91 } |
90 |
92 |
157 } |
159 } |
158 #endif |
160 #endif |
159 |
161 |
160 void ui_show(UiObject *obj) { |
162 void ui_show(UiObject *obj) { |
161 uic_check_group_widgets(obj->ctx); |
163 uic_check_group_widgets(obj->ctx); |
|
164 #if GTK_MAJOR_VERSION >= 4 |
|
165 gtk_window_present(GTK_WINDOW(obj->widget)); |
|
166 #elif GTK_MAJOR_VERSION <= 3 |
162 gtk_widget_show_all(obj->widget); |
167 gtk_widget_show_all(obj->widget); |
|
168 #endif |
163 } |
169 } |
164 |
170 |
165 void ui_close(UiObject *obj) { |
171 void ui_close(UiObject *obj) { |
166 gtk_widget_destroy(obj->widget); |
172 // TODO |
|
173 //gtk_widget_destroy(obj->widget); |
167 } |
174 } |
168 |
175 |
169 |
176 |
170 static gboolean ui_job_finished(void *data) { |
177 static gboolean ui_job_finished(void *data) { |
171 UiJob *job = data; |
178 UiJob *job = data; |
224 void ui_set_enabled(UIWIDGET widget, int enabled) { |
231 void ui_set_enabled(UIWIDGET widget, int enabled) { |
225 gtk_widget_set_sensitive(widget, enabled); |
232 gtk_widget_set_sensitive(widget, enabled); |
226 } |
233 } |
227 |
234 |
228 void ui_set_show_all(UIWIDGET widget, int value) { |
235 void ui_set_show_all(UIWIDGET widget, int value) { |
|
236 // TODO: gtk4 |
|
237 #if GTK_MAJOR_VERSION <= 3 |
229 gtk_widget_set_no_show_all(widget, !value); |
238 gtk_widget_set_no_show_all(widget, !value); |
|
239 #endif |
230 } |
240 } |
231 |
241 |
232 void ui_set_visible(UIWIDGET widget, int visible) { |
242 void ui_set_visible(UIWIDGET widget, int visible) { |
|
243 // TODO: gtk4 |
|
244 #if GTK_MAJOR_VERSION <= 3 |
233 if(visible) { |
245 if(visible) { |
234 gtk_widget_set_no_show_all(widget, FALSE); |
246 gtk_widget_set_no_show_all(widget, FALSE); |
235 gtk_widget_show_all(widget); |
247 gtk_widget_show_all(widget); |
236 } else { |
248 } else { |
237 gtk_widget_hide(widget); |
249 gtk_widget_hide(widget); |
238 } |
250 } |
|
251 #endif |
239 } |
252 } |
240 |
253 |
241 void ui_clipboard_set(char *str) { |
254 void ui_clipboard_set(char *str) { |
|
255 #if GTK_MAJOR_VERSION >= 4 |
|
256 // TODO: gtk4: needs widget |
|
257 #else |
242 GtkClipboard *cb = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); |
258 GtkClipboard *cb = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); |
243 gtk_clipboard_set_text(cb, str, strlen(str)); |
259 gtk_clipboard_set_text(cb, str, strlen(str)); |
|
260 #endif |
244 } |
261 } |
245 |
262 |
246 char* ui_clipboard_get() { |
263 char* ui_clipboard_get() { |
|
264 #if GTK_MAJOR_VERSION >= 4 |
|
265 // TODO: gtk4: needs widget |
|
266 return NULL; |
|
267 #else |
247 GtkClipboard *cb = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); |
268 GtkClipboard *cb = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); |
248 char *str = gtk_clipboard_wait_for_text(cb); |
269 char *str = gtk_clipboard_wait_for_text(cb); |
249 if(str) { |
270 if(str) { |
250 char *copy = strdup(str); |
271 char *copy = strdup(str); |
251 g_free(str); |
272 g_free(str); |
252 return copy; |
273 return copy; |
253 } else { |
274 } else { |
254 return NULL; |
275 return NULL; |
255 } |
276 } |
|
277 #endif |
256 } |
278 } |
257 |
279 |
258 int ui_get_scalefactor() { |
280 int ui_get_scalefactor() { |
259 return scale_factor; |
281 return scale_factor; |
260 } |
282 } |