Added page scrolling, default not show tabs
This commit is contained in:
parent
a3de8c9394
commit
d9db308213
|
@ -68,8 +68,6 @@ void on_gm_world_view_editor_view_close_clicked(GtkButton *button,
|
||||||
void on_gm_world_view_log_view_close_clicked(GtkButton *button,
|
void on_gm_world_view_log_view_close_clicked(GtkButton *button,
|
||||||
GtkWidget *view);
|
GtkWidget *view);
|
||||||
|
|
||||||
void on_gm_world_view_switch_page(GmWorldView *view, GtkNotebookPage *page,
|
|
||||||
guint page_num, gpointer user_data);
|
|
||||||
gboolean on_gm_world_view_world_input_view_key_pressed(GtkWidget *widget,
|
gboolean on_gm_world_view_world_input_view_key_pressed(GtkWidget *widget,
|
||||||
GdkEventKey *event, GmWorldView *view);
|
GdkEventKey *event, GmWorldView *view);
|
||||||
|
|
||||||
|
@ -154,6 +152,29 @@ gm_world_view_destroy(GtkObject *object) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gm_world_view_input_grab_focus(GmWorldView *view) {
|
||||||
|
gtk_widget_grab_focus(GTK_WIDGET(view->priv->text_view_input));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_world_view_switch_page(GtkNotebook *notebook, GtkNotebookPage *page,
|
||||||
|
guint page_num) {
|
||||||
|
if (GTK_NOTEBOOK_CLASS(gm_world_view_parent_class)->switch_page) {
|
||||||
|
GTK_NOTEBOOK_CLASS(gm_world_view_parent_class)->switch_page(notebook, page, page_num);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gtk_notebook_get_n_pages(notebook) == 1) {
|
||||||
|
gtk_notebook_set_show_tabs(notebook, FALSE);
|
||||||
|
}
|
||||||
|
if (page_num == 0) {
|
||||||
|
g_idle_add((GSourceFunc)gm_world_view_input_grab_focus,
|
||||||
|
GM_WORLD_VIEW(notebook));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gm_world_view_show(GtkWidget *widget) {
|
gm_world_view_show(GtkWidget *widget) {
|
||||||
GmWorldView *view = GM_WORLD_VIEW(widget);
|
GmWorldView *view = GM_WORLD_VIEW(widget);
|
||||||
|
@ -179,6 +200,7 @@ gm_world_view_class_init(GmWorldViewClass *klass) {
|
||||||
object_class->finalize = gm_world_view_finalize;
|
object_class->finalize = gm_world_view_finalize;
|
||||||
widget_class->show = gm_world_view_show;
|
widget_class->show = gm_world_view_show;
|
||||||
gtk_object_class->destroy = gm_world_view_destroy;
|
gtk_object_class->destroy = gm_world_view_destroy;
|
||||||
|
GTK_NOTEBOOK_CLASS(klass)->switch_page = gm_world_view_switch_page;
|
||||||
|
|
||||||
g_type_class_add_private(object_class, sizeof(GmWorldViewPrivate));
|
g_type_class_add_private(object_class, sizeof(GmWorldViewPrivate));
|
||||||
}
|
}
|
||||||
|
@ -415,9 +437,6 @@ gm_world_view_init(GmWorldView *view) {
|
||||||
label = gm_create_tab_label("world.svg", _("World"), FALSE, &info);
|
label = gm_create_tab_label("world.svg", _("World"), FALSE, &info);
|
||||||
gtk_notebook_append_page(GTK_NOTEBOOK(view),
|
gtk_notebook_append_page(GTK_NOTEBOOK(view),
|
||||||
gm_world_view_world_page_new(view), label);
|
gm_world_view_world_page_new(view), label);
|
||||||
|
|
||||||
g_signal_connect(view, "switch-page",
|
|
||||||
G_CALLBACK(on_gm_world_view_switch_page), NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
|
@ -920,6 +939,19 @@ on_gm_world_view_world_input_view_key_pressed(GtkWidget *widget,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case GDK_Page_Up: case GDK_Page_Down:
|
||||||
|
if (!(event->state & GDK_CONTROL_MASK &&
|
||||||
|
!(event->state & GDK_SHIFT_MASK))) {
|
||||||
|
if (event->keyval == GDK_Page_Up) {
|
||||||
|
gm_text_scroller_scroll_page(
|
||||||
|
view->priv->text_scroller_world, -1);
|
||||||
|
} else {
|
||||||
|
gm_text_scroller_scroll_page(
|
||||||
|
view->priv->text_scroller_world, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -938,18 +970,3 @@ on_gm_world_view_world_text_view_url_activate(GmWorldView *view,
|
||||||
gchar const *url) {
|
gchar const *url) {
|
||||||
gm_open_url(url);
|
gm_open_url(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
|
||||||
gm_world_view_input_grab_focus(GmWorldView *view) {
|
|
||||||
gtk_widget_grab_focus(GTK_WIDGET(view->priv->text_view_input));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
on_gm_world_view_switch_page(GmWorldView *view, GtkNotebookPage *page,
|
|
||||||
guint page_num, gpointer user_data) {
|
|
||||||
if (page_num == 0) {
|
|
||||||
g_idle_add((GSourceFunc)gm_world_view_input_grab_focus, view);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Reference in New Issue