ui/gtk/toolkit.c

branch
newapi
changeset 296
a362c76dbf99
parent 293
736c962f1011
equal deleted inserted replaced
295:35d6e9b5d4b3 296:a362c76dbf99
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 }

mercurial