gtk editor: Use GTK+ 3 layout widgets

Specifically, GtkGrid. For most cases, this is an increase in lines of
code, but the landscape tools dialog can now be done with just three layout
widgets.

While at it, use a toolbar and move the mode buttons into it, too.
objectmenu
Günther Brammer 2016-01-08 21:58:17 +01:00
parent 2bb8be66ca
commit ab7f4f0bbf
3 changed files with 128 additions and 96 deletions

View File

@ -366,7 +366,11 @@ void C4ConsoleGUI::State::InitGUI()
gtk_toolbar_insert(GTK_TOOLBAR(top_hbox), GTK_TOOL_ITEM(btnModeDraw), -1);
lblCursor = gtk_label_new("");
gtk_misc_set_padding(GTK_MISC(lblCursor), 3, 0);
#if GTK_CHECK_VERSION(3,12,0)
gtk_widget_set_margin_start(lblCursor, 3);
#else
gtk_widget_set_margin_left(lblCursor, 3);
#endif
gtk_label_set_ellipsize(GTK_LABEL(lblCursor), PANGO_ELLIPSIZE_END);
GtkToolItem * itmCursor = gtk_tool_item_new();
gtk_tool_item_set_expand(itmCursor, TRUE);
@ -374,7 +378,7 @@ void C4ConsoleGUI::State::InitGUI()
gtk_toolbar_insert(GTK_TOOLBAR(top_hbox), itmCursor, -1);
// ------------ Statusbar ---------------------
GtkWidget* statusbar = gtk_hbox_new(false, 6);
GtkWidget* statusbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
GtkWidget* status_frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(status_frame), GTK_SHADOW_IN);
@ -383,10 +387,10 @@ void C4ConsoleGUI::State::InitGUI()
lblFrame = gtk_label_new("Frame: 0");
lblTime = gtk_label_new("00:00:00 (0 FPS)");
gtk_misc_set_alignment(GTK_MISC(lblFrame), 0.0, 0.5);
gtk_misc_set_alignment(GTK_MISC(lblTime), 0.0, 0.5);
gtk_widget_set_valign(lblFrame, GTK_ALIGN_CENTER);
gtk_widget_set_valign(lblTime, GTK_ALIGN_CENTER);
GtkWidget* sep1 = gtk_vseparator_new();
GtkWidget* sep1 = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
gtk_box_pack_start(GTK_BOX(statusbar), lblFrame, true, true, 0);
gtk_box_pack_start(GTK_BOX(statusbar), sep1, false, false, 0);
@ -482,13 +486,18 @@ void C4ConsoleGUI::State::InitGUI()
gtk_menu_shell_append(GTK_MENU_SHELL(menuHelp), helpAbout);
// ------------ Window ---------------------
GtkWidget* box = gtk_vbox_new(false, 0);
GtkWidget* box = gtk_grid_new();
gtk_orientable_set_orientation (GTK_ORIENTABLE(box), GTK_ORIENTATION_VERTICAL);
gtk_box_pack_start(GTK_BOX(box), menuBar, false, false, 0);
gtk_box_pack_start(GTK_BOX(box), top_hbox, false, false, 0);
gtk_box_pack_start(GTK_BOX(box), scroll, true, true, 0);
gtk_box_pack_start(GTK_BOX(box), txtScript, false, false, 3);
gtk_box_pack_start(GTK_BOX(box), status_frame, false, false, 0);
gtk_container_add(GTK_CONTAINER(box), menuBar);
gtk_container_add(GTK_CONTAINER(box), top_hbox);
gtk_widget_set_vexpand(scroll, true);
gtk_widget_set_hexpand(scroll, true);
gtk_container_add(GTK_CONTAINER(box), scroll);
gtk_widget_set_margin_top(txtScript, 3);
gtk_widget_set_margin_bottom(txtScript, 3);
gtk_container_add(GTK_CONTAINER(box), txtScript);
gtk_container_add(GTK_CONTAINER(box), status_frame);
gtk_container_add(GTK_CONTAINER(GetOwner()->window), box);
gtk_widget_show_all(GTK_WIDGET(GetOwner()->window));
@ -608,7 +617,7 @@ void C4ConsoleGUI::SetCursor(Cursor cursor)
gdk_window_set_cursor(window_wnd, gdkcursor);
gdk_display_flush(display);
if (cursor)
gdk_cursor_unref (gdkcursor);
g_object_unref (gdkcursor);
}
void C4ConsoleGUI::ClearViewportMenu()
@ -972,7 +981,8 @@ bool C4ConsoleGUI::PropertyDlgOpen()
{
if (state->propertydlg == NULL)
{
GtkWidget * vbox = state->propertydlg = gtk_vbox_new(false, 3);
GtkWidget * vbox = state->propertydlg = gtk_grid_new();
gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox), GTK_ORIENTATION_VERTICAL);
GtkWidget* scrolled_wnd = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_wnd), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
@ -986,8 +996,11 @@ bool C4ConsoleGUI::PropertyDlgOpen()
GtkWidget * entry = state->propertydlg_entry = gtk_entry_new();
gtk_container_add(GTK_CONTAINER(scrolled_wnd), textview);
gtk_box_pack_start(GTK_BOX(vbox), scrolled_wnd, true, true, 0);
gtk_box_pack_start(GTK_BOX(vbox), entry, false, false, 0);
gtk_widget_set_vexpand(scrolled_wnd, true);
gtk_widget_set_hexpand(scrolled_wnd, true);
gtk_container_add(GTK_CONTAINER(vbox), scrolled_wnd);
gtk_widget_set_margin_top(entry, 3);
gtk_container_add(GTK_CONTAINER(vbox), entry);
gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), false);
gtk_text_view_set_left_margin(GTK_TEXT_VIEW(textview), 2);
@ -1082,69 +1095,66 @@ bool C4ToolsDlg::State::Open()
{
if (hbox == NULL)
{
hbox = gtk_hbox_new(false, 12);
GtkWidget* vbox = gtk_vbox_new(false, 6);
hbox = gtk_grid_new();
GtkWidget * toolbar = gtk_toolbar_new();
GtkWidget* image_brush = CreateImageFromInlinedPixbuf(brush_pixbuf_data);
GtkWidget* image_line = CreateImageFromInlinedPixbuf(line_pixbuf_data);
GtkWidget* image_rect = CreateImageFromInlinedPixbuf(rect_pixbuf_data);
GtkWidget* image_fill = CreateImageFromInlinedPixbuf(fill_pixbuf_data);
GtkWidget* image_picker = CreateImageFromInlinedPixbuf(picker_pixbuf_data);
GtkWidget* image_dynamic = CreateImageFromInlinedPixbuf(dynamic_pixbuf_data);
GtkWidget* image_static = CreateImageFromInlinedPixbuf(static_pixbuf_data);
GtkWidget* image_exact = CreateImageFromInlinedPixbuf(exact_pixbuf_data);
landscape_dynamic = gtk_toggle_button_new();
landscape_static = gtk_toggle_button_new();
landscape_exact = gtk_toggle_button_new();
brush = GTK_WIDGET(gtk_toggle_tool_button_new());
line = GTK_WIDGET(gtk_toggle_tool_button_new());
rect = GTK_WIDGET(gtk_toggle_tool_button_new());
fill = GTK_WIDGET(gtk_toggle_tool_button_new());
picker = GTK_WIDGET(gtk_toggle_tool_button_new());
landscape_dynamic = GTK_WIDGET(gtk_toggle_tool_button_new());
landscape_static = GTK_WIDGET(gtk_toggle_tool_button_new());
landscape_exact = GTK_WIDGET(gtk_toggle_tool_button_new());
gtk_container_add(GTK_CONTAINER(landscape_dynamic), image_dynamic);
gtk_container_add(GTK_CONTAINER(landscape_static), image_static);
gtk_container_add(GTK_CONTAINER(landscape_exact), image_exact);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(landscape_dynamic), image_dynamic);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(landscape_static), image_static);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(landscape_exact), image_exact);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(brush), image_brush);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(line), image_line);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(rect), image_rect);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(fill), image_fill);
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(picker), image_picker);
gtk_box_pack_start(GTK_BOX(vbox), landscape_dynamic, false, false, 0);
gtk_box_pack_start(GTK_BOX(vbox), landscape_static, false, false, 0);
gtk_box_pack_start(GTK_BOX(vbox), landscape_exact, false, false, 0);
gtk_container_add(GTK_CONTAINER(toolbar), landscape_dynamic);
gtk_container_add(GTK_CONTAINER(toolbar), landscape_static);
gtk_container_add(GTK_CONTAINER(toolbar), landscape_exact);
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(gtk_separator_tool_item_new()));
gtk_container_add(GTK_CONTAINER(toolbar), brush);
gtk_container_add(GTK_CONTAINER(toolbar), line);
gtk_container_add(GTK_CONTAINER(toolbar), rect);
gtk_container_add(GTK_CONTAINER(toolbar), fill);
gtk_container_add(GTK_CONTAINER(toolbar), picker);
gtk_box_pack_start(GTK_BOX(hbox), vbox, false, false, 0);
vbox = gtk_vbox_new(false, 12);
gtk_box_pack_start(GTK_BOX(hbox), vbox, true, true, 0);
GtkWidget* local_hbox = gtk_hbox_new(false, 6);
brush = gtk_toggle_button_new();
line = gtk_toggle_button_new();
rect = gtk_toggle_button_new();
fill = gtk_toggle_button_new();
picker = gtk_toggle_button_new();
gtk_container_add(GTK_CONTAINER(brush), image_brush);
gtk_container_add(GTK_CONTAINER(line), image_line);
gtk_container_add(GTK_CONTAINER(rect), image_rect);
gtk_container_add(GTK_CONTAINER(fill), image_fill);
gtk_container_add(GTK_CONTAINER(picker), image_picker);
gtk_box_pack_start(GTK_BOX(local_hbox), brush, false, false, 0);
gtk_box_pack_start(GTK_BOX(local_hbox), line, false, false, 0);
gtk_box_pack_start(GTK_BOX(local_hbox), rect, false, false, 0);
gtk_box_pack_start(GTK_BOX(local_hbox), fill, false, false, 0);
gtk_box_pack_start(GTK_BOX(local_hbox), picker, false, false, 0);
gtk_box_pack_start(GTK_BOX(vbox), local_hbox, false, false, 0);
local_hbox = gtk_hbox_new(false, 12);
gtk_box_pack_start(GTK_BOX(vbox), local_hbox, true, true, 0);
gtk_grid_attach(GTK_GRID(hbox), toolbar, 0, 0, 5, 1);
preview = gtk_image_new();
gtk_box_pack_start(GTK_BOX(local_hbox), preview, false, false, 0);
gtk_widget_set_vexpand(preview, true);
gtk_widget_set_hexpand(preview, true);
gtk_grid_attach(GTK_GRID(hbox), preview, 0, 1, 1, 1);
scale = gtk_vscale_new(NULL);
gtk_box_pack_start(GTK_BOX(local_hbox), scale, false, false, 0);
scale = gtk_scale_new(GTK_ORIENTATION_VERTICAL, NULL);
gtk_widget_set_vexpand(scale, true);
gtk_grid_attach(GTK_GRID(hbox), scale, 1, 1, 1, 1);
vbox = gtk_vbox_new(false, 6);
GtkWidget * grid = gtk_grid_new();
fg_materials = gtk_combo_box_text_new();
fg_textures = gtk_combo_box_text_new();
g_object_set(fg_materials, "margin", 3, NULL);
fg_textures = gtk_combo_box_text_new();
g_object_set(fg_textures, "margin", 3, NULL);
bg_materials = gtk_combo_box_text_new();
bg_textures = gtk_combo_box_text_new();
g_object_set(bg_materials, "margin", 3, NULL);
bg_textures = gtk_combo_box_text_new();
g_object_set(bg_textures, "margin", 3, NULL);
// Link the material combo boxes together, but not the texture combo boxes,
// so that we can sort the texture combo box differently.
@ -1155,23 +1165,33 @@ bool C4ToolsDlg::State::Open()
gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(bg_materials), RowSeparatorFunc, NULL, NULL);
gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(bg_textures), RowSeparatorFunc, NULL, NULL);
GtkWidget* fg_box = gtk_hbox_new(false, 6);
GtkWidget* fg_lbl = gtk_label_new("Foreground:");
gtk_box_pack_start(GTK_BOX(fg_box), fg_lbl, false, false, 0);
gtk_box_pack_start(GTK_BOX(fg_box), fg_materials, true, false, 0);
gtk_box_pack_start(GTK_BOX(fg_box), fg_textures, true, false, 0);
gtk_grid_attach(GTK_GRID(grid), gtk_label_new(LoadResStr("IDS_CTL_MATERIAL")), 1, 0, 1, 1);
gtk_grid_attach(GTK_GRID(grid), gtk_label_new(LoadResStr("IDS_CTL_TEXTURE")), 2, 0, 1, 1);
GtkWidget* fg_lbl = gtk_label_new(LoadResStr("IDS_CTL_FOREGROUND"));
gtk_widget_set_halign(fg_lbl, GTK_ALIGN_END);
#if GTK_CHECK_VERSION(3,12,0)
gtk_widget_set_margin_start(fg_lbl, 3);
#else
gtk_widget_set_margin_left(fg_lbl, 3);
#endif
gtk_grid_attach(GTK_GRID(grid), fg_lbl, 0, 1, 1, 1);
gtk_grid_attach(GTK_GRID(grid), fg_materials, 1, 1, 1, 1);
gtk_grid_attach(GTK_GRID(grid), fg_textures, 2, 1, 1, 1);
GtkWidget* bg_box = gtk_hbox_new(false, 6);
GtkWidget* bg_lbl = gtk_label_new("Background:");
gtk_box_pack_start(GTK_BOX(bg_box), bg_lbl, false, false, 0);
gtk_box_pack_start(GTK_BOX(bg_box), bg_materials, true, false, 0);
gtk_box_pack_start(GTK_BOX(bg_box), bg_textures, true, false, 0);
GtkWidget* bg_lbl = gtk_label_new(LoadResStr("IDS_CTL_BACKGROUND"));
gtk_widget_set_halign(bg_lbl, GTK_ALIGN_END);
#if GTK_CHECK_VERSION(3,12,0)
gtk_widget_set_margin_start(bg_lbl, 3);
#else
gtk_widget_set_margin_left(bg_lbl, 3);
#endif
gtk_grid_attach(GTK_GRID(grid), bg_lbl, 0, 2, 1, 1);
gtk_grid_attach(GTK_GRID(grid), bg_materials, 1, 2, 1, 1);
gtk_grid_attach(GTK_GRID(grid), bg_textures, 2, 2, 1, 1);
gtk_box_pack_start(GTK_BOX(vbox), fg_box, false, false, 0);
gtk_box_pack_start(GTK_BOX(vbox), bg_box, false, false, 0);
gtk_grid_attach(GTK_GRID(hbox), grid, 2, 1, 1, 1);
gtk_box_pack_start(GTK_BOX(local_hbox), vbox, true, true, 0); // ???
gtk_widget_show_all(hbox);
C4DevmodeDlg::AddPage(hbox, GTK_WINDOW(Console.window), LoadResStr("IDS_DLG_TOOLS"));
@ -1239,11 +1259,11 @@ void C4ToolsDlg::State::UpdateToolCtrls()
g_signal_handler_block(fill, handlerFill);
g_signal_handler_block(picker, handlerPicker);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(brush), dlg->Tool == C4TLS_Brush);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(line), dlg->Tool == C4TLS_Line);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rect), dlg->Tool == C4TLS_Rect);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fill), dlg->Tool == C4TLS_Fill);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(picker), dlg->Tool == C4TLS_Picker);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(brush), dlg->Tool == C4TLS_Brush);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(line), dlg->Tool == C4TLS_Line);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(rect), dlg->Tool == C4TLS_Rect);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(fill), dlg->Tool == C4TLS_Fill);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(picker), dlg->Tool == C4TLS_Picker);
g_signal_handler_unblock(brush, handlerBrush);
g_signal_handler_unblock(line, handlerLine);
@ -1393,13 +1413,13 @@ void C4ToolsDlg::State::UpdateLandscapeModeCtrls()
g_signal_handler_block(landscape_static, handlerStatic);
g_signal_handler_block(landscape_exact, handlerExact);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(landscape_dynamic), iMode==C4LSC_Dynamic);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(landscape_dynamic), iMode==C4LSC_Dynamic);
gtk_widget_set_sensitive(landscape_dynamic, iMode==C4LSC_Dynamic);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(landscape_static), iMode==C4LSC_Static);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(landscape_static), iMode==C4LSC_Static);
gtk_widget_set_sensitive(landscape_static, ::Landscape.HasMap());
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(landscape_exact), iMode==C4LSC_Exact);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(landscape_exact), iMode==C4LSC_Exact);
g_signal_handler_unblock(landscape_dynamic, handlerDynamic);
g_signal_handler_unblock(landscape_static, handlerStatic);

View File

@ -776,9 +776,7 @@ void C4ObjectListDlg::Open()
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(OnDestroy), this);
// The VBox and Tree
GtkWidget* vbox = gtk_vbox_new(false, 8);
// The Tree
GtkWidget* scrolled_wnd = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_wnd), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_wnd), GTK_SHADOW_IN);
@ -809,9 +807,10 @@ void C4ObjectListDlg::Open()
g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(OnSelectionChanged), this);
gtk_container_add(GTK_CONTAINER(scrolled_wnd), treeview);
gtk_box_pack_start(GTK_BOX(vbox), scrolled_wnd, true, true, 0);
gtk_widget_set_vexpand(scrolled_wnd, true);
gtk_widget_set_hexpand(scrolled_wnd, true);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_container_add(GTK_CONTAINER(window), scrolled_wnd);
gtk_widget_show_all(window);
}

View File

@ -616,12 +616,15 @@ C4Window* C4Window::Init(WindowKind windowKind, C4AbstractApp * pApp, const char
// Cannot just use ScrolledWindow because this would just move
// the GdkWindow of the DrawingArea.
GtkWidget* table;
GtkWidget* table = gtk_grid_new();
render_widget = gtk_drawing_area_new();
vw->h_scrollbar = gtk_hscrollbar_new(NULL);
vw->v_scrollbar = gtk_vscrollbar_new(NULL);
table = gtk_table_new(2, 2, false);
gtk_widget_set_hexpand(GTK_WIDGET(render_widget), true);
gtk_widget_set_vexpand(GTK_WIDGET(render_widget), true);
gtk_grid_attach(GTK_GRID(table), GTK_WIDGET(render_widget), 0, 0, 1, 1);
vw->h_scrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, NULL);
gtk_grid_attach(GTK_GRID(table), vw->h_scrollbar, 0, 1, 1, 1);
vw->v_scrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, NULL);
gtk_grid_attach(GTK_GRID(table), vw->v_scrollbar, 1, 0, 1, 1);
GtkAdjustment* adjustment = gtk_range_get_adjustment(GTK_RANGE(vw->h_scrollbar));
@ -641,10 +644,6 @@ C4Window* C4Window::Init(WindowKind windowKind, C4AbstractApp * pApp, const char
this
);
gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(render_widget), 0, 1, 0, 1, static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 0, 0);
gtk_table_attach(GTK_TABLE(table), vw->v_scrollbar, 1, 2, 0, 1, GTK_SHRINK, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), 0, 0);
gtk_table_attach(GTK_TABLE(table), vw->h_scrollbar, 0, 1, 1, 2, static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), GTK_SHRINK, 0, 0);
gtk_container_add(GTK_CONTAINER(window), table);
gtk_widget_add_events(GTK_WIDGET(window), GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK | GDK_POINTER_MOTION_MASK);
@ -665,11 +664,15 @@ C4Window* C4Window::Init(WindowKind windowKind, C4AbstractApp * pApp, const char
g_signal_connect_after(G_OBJECT(render_widget), "configure-event", G_CALLBACK(OnConfigureDareaStatic), this);
#if !GTK_CHECK_VERSION(3,10,0)
// do not draw the default background
gtk_widget_set_double_buffered (GTK_WIDGET(render_widget), false);
#endif
gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(Console.window));
#if !GTK_CHECK_VERSION(3,14,0)
gtk_window_set_has_resize_grip(GTK_WINDOW(window), false);
#endif
}
else if (windowKind == W_Fullscreen)
{
@ -687,7 +690,9 @@ C4Window* C4Window::Init(WindowKind windowKind, C4AbstractApp * pApp, const char
g_signal_connect(G_OBJECT(window), "key-release-event", G_CALLBACK(OnKeyRelease), this);
g_signal_connect(G_OBJECT(window), "scroll-event", G_CALLBACK(OnScroll), this);
gtk_widget_add_events(GTK_WIDGET(window), GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
#if !GTK_CHECK_VERSION(3,10,0)
gtk_widget_set_double_buffered (GTK_WIDGET(render_widget), false);
#endif
GValue val = {0,{{0}}};
g_value_init (&val, G_TYPE_BOOLEAN);
@ -695,7 +700,9 @@ C4Window* C4Window::Init(WindowKind windowKind, C4AbstractApp * pApp, const char
g_object_set_property (G_OBJECT (render_widget), "can-focus", &val);
g_object_set_property (G_OBJECT (window), "can-focus", &val);
g_value_unset (&val);
#if !GTK_CHECK_VERSION(3,14,0)
gtk_window_set_has_resize_grip(GTK_WINDOW(window), false);
#endif
}
else if (windowKind == W_GuiWindow)
{
@ -707,7 +714,9 @@ C4Window* C4Window::Init(WindowKind windowKind, C4AbstractApp * pApp, const char
g_signal_connect(G_OBJECT(window), "scroll-event", G_CALLBACK(OnScroll), this);
gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(Console.window));
#if !GTK_CHECK_VERSION(3,14,0)
gtk_window_set_has_resize_grip(GTK_WINDOW(window), false);
#endif
}
else if (windowKind == W_Console)
{
@ -779,7 +788,8 @@ C4Window* C4Window::Init(WindowKind windowKind, C4AbstractApp * pApp, const char
gdk_flush();
if (windowKind == W_Fullscreen)
gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(render_widget)), gdk_cursor_new(GDK_BLANK_CURSOR));
gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(render_widget)),
gdk_cursor_new_for_display(gdk_display_get_default(), GDK_BLANK_CURSOR));
return this;
}
@ -809,7 +819,9 @@ bool C4Window::ReInit(C4AbstractApp* pApp)
// remains hidden afterwards. So we re-create it from scratch.
gtk_widget_destroy(GTK_WIDGET(render_widget));
render_widget = gtk_drawing_area_new();
#if !GTK_CHECK_VERSION(3,10,0)
gtk_widget_set_double_buffered (GTK_WIDGET(render_widget), false);
#endif
g_object_set(G_OBJECT(render_widget), "can-focus", TRUE, NULL);
gtk_widget_set_visual(GTK_WIDGET(render_widget),vis);
@ -832,7 +844,8 @@ bool C4Window::ReInit(C4AbstractApp* pApp)
}
gdk_flush();
gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(render_widget)), gdk_cursor_new(GDK_BLANK_CURSOR));
gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(render_widget)),
gdk_cursor_new_for_display(gdk_display_get_default(), GDK_BLANK_CURSOR));
return true;
}