ui/gtk/window.c

branch
newapi
changeset 296
a362c76dbf99
parent 281
2533cdebf6ef
child 297
a73c60adf188
equal deleted inserted replaced
295:35d6e9b5d4b3 296:a362c76dbf99
106 "destroy", 106 "destroy",
107 G_CALLBACK(ui_exit_event), 107 G_CALLBACK(ui_exit_event),
108 obj); 108 obj);
109 109
110 GtkWidget *vbox = ui_gtk_vbox_new(0); 110 GtkWidget *vbox = ui_gtk_vbox_new(0);
111 #if GTK_MAJOR_VERSION >= 4
112 WINDOW_SET_CONTENT(obj->widget, vbox);
113 #else
111 gtk_container_add(GTK_CONTAINER(obj->widget), vbox); 114 gtk_container_add(GTK_CONTAINER(obj->widget), vbox);
112 115
113 if(!simple) { 116 if(!simple) {
114 // menu 117 // menu
115 if(uic_get_menu_list()) { 118 if(uic_get_menu_list()) {
128 } 131 }
129 132
130 //GtkWidget *hb = ui_create_headerbar(obj); 133 //GtkWidget *hb = ui_create_headerbar(obj);
131 //gtk_window_set_titlebar(GTK_WINDOW(obj->widget), hb); 134 //gtk_window_set_titlebar(GTK_WINDOW(obj->widget), hb);
132 } 135 }
136 #endif
133 137
134 // window content 138 // window content
135 // the content has a (TODO: not yet) configurable frame 139 // the content has a (TODO: not yet) configurable frame
140 // TODO: really? why
141 /*
136 GtkWidget *frame = gtk_frame_new(NULL); 142 GtkWidget *frame = gtk_frame_new(NULL);
137 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); 143 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
138 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); 144 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
139 145
140 // content vbox 146 // content vbox
141 GtkWidget *content_box = ui_gtk_vbox_new(0); 147 GtkWidget *content_box = ui_gtk_vbox_new(0);
142 gtk_container_add(GTK_CONTAINER(frame), content_box); 148 gtk_container_add(GTK_CONTAINER(frame), content_box);
149 obj->container = ui_box_container(obj, content_box);
150 */
151 GtkWidget *content_box = ui_gtk_vbox_new(0);
152 BOX_ADD(GTK_BOX(vbox), content_box);
143 obj->container = ui_box_container(obj, content_box); 153 obj->container = ui_box_container(obj, content_box);
144 154
145 nwindows++; 155 nwindows++;
146 return obj; 156 return obj;
147 } 157 }
171 evt.eventdata = NULL; 181 evt.eventdata = NULL;
172 evt.intval = 0; 182 evt.intval = 0;
173 183
174 if(data->customdata) { 184 if(data->customdata) {
175 GtkWidget *entry = data->customdata; 185 GtkWidget *entry = data->customdata;
176 evt.eventdata = (void*)gtk_entry_get_text(GTK_ENTRY(entry)); 186 evt.eventdata = (void*)ENTRY_GET_TEXT(GTK_ENTRY(entry));
177 187
178 } 188 }
179 189
180 if(response_id == 1 || response_id == 2) { 190 if(response_id == 1 || response_id == 2) {
181 evt.intval = response_id; 191 evt.intval = response_id;
184 194
185 if(data->callback) { 195 if(data->callback) {
186 data->callback(&evt, data->userdata); 196 data->callback(&evt, data->userdata);
187 } 197 }
188 198
189 gtk_widget_destroy(GTK_WIDGET(self)); 199 WINDOW_DESTROY(GTK_WIDGET(self));
190 } 200 }
191 201
192 void ui_dialog_create(UiObject *parent, UiDialogArgs args) { 202 void ui_dialog_create(UiObject *parent, UiDialogArgs args) {
193 GtkDialog *dialog = GTK_DIALOG(gtk_dialog_new()); 203 GtkDialog *dialog = GTK_DIALOG(gtk_dialog_new());
194 GtkWidget *dialog_w = GTK_WIDGET(dialog); 204 GtkWidget *dialog_w = GTK_WIDGET(dialog);
206 } 216 }
207 217
208 GtkWidget *content_area = gtk_dialog_get_content_area(dialog); 218 GtkWidget *content_area = gtk_dialog_get_content_area(dialog);
209 if(args.content) { 219 if(args.content) {
210 GtkWidget *label = gtk_label_new(args.content); 220 GtkWidget *label = gtk_label_new(args.content);
211 gtk_container_add(GTK_CONTAINER(content_area), label); 221 BOX_ADD(content_area, label);
212 } 222 }
213 223
214 GtkWidget *textfield = NULL; 224 GtkWidget *textfield = NULL;
215 if(args.input) { 225 if(args.input) {
216 textfield = gtk_entry_new(); 226 textfield = gtk_entry_new();
217 gtk_container_add(GTK_CONTAINER(content_area), textfield); 227 BOX_ADD(content_area, textfield);
218 } 228 }
219 229
220 UiEventData *event = malloc(sizeof(UiEventData)); 230 UiEventData *event = malloc(sizeof(UiEventData));
221 event->obj = parent; 231 event->obj = parent;
222 event->callback = args.result; 232 event->callback = args.result;
227 g_signal_connect(dialog_w, 237 g_signal_connect(dialog_w,
228 "response", 238 "response",
229 G_CALLBACK(ui_dialog_response), 239 G_CALLBACK(ui_dialog_response),
230 event); 240 event);
231 241
232 gtk_widget_show_all(GTK_WIDGET(dialog_w)); 242 WINDOW_SHOW(GTK_WIDGET(dialog_w));
233 } 243 }
234 244
235 static void ui_gtkfilechooser(UiObject *obj, GtkFileChooserAction action, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { 245 static void ui_gtkfilechooser(UiObject *obj, GtkFileChooserAction action, unsigned int mode, ui_callback file_selected_callback, void *cbdata) {
236 char *button; 246 char *button;
237 char *title; 247 char *title;

mercurial