Example #1
0
void
tabs_init()
{
	char *tab_label_menu = _("Menu");
	char *tab_label_contacts = _("Contacts");
	char *tab_label_broadcast = _("Global");
	struct tab *t;
	struct view *v;

	t = tab_new("Log");
	v = view_init("log");
	tab_push_view(t, v);
	view_log_print(VLT_INFO, "Begin logging...");

	t = tab_new(tab_label_menu);
	v = view_init("menu");
	tab_push_view(t, v);
	tab_show(t);

	t = tab_new(tab_label_contacts);
	v = view_init("contacts");
	tab_push_view(t, v);

	t = tab_new(tab_label_broadcast);
	v = view_init("chat");
	view_chat_set_contact(v, NULL);
	tab_push_view(t, v);
}
Example #2
0
/* setup the main window */
static void new_window() {

  window *w = g_new0(window, 1);

  term_data_id = g_quark_from_static_string("svte");
  w->notebook = gtk_notebook_new();
  gtk_notebook_set_show_border(GTK_NOTEBOOK(w->notebook), FALSE);
  gtk_notebook_set_scrollable(GTK_NOTEBOOK(w->notebook), TRUE);
  w->win = gtk_window_new(GTK_WINDOW_TOPLEVEL);

  if (config->fullscreen) {
    gtk_window_fullscreen(GTK_WINDOW(w->win));
  }

  gtk_window_set_default_size(GTK_WINDOW(w->win),
      config->window_width,
      config->window_height);
  gtk_container_add(GTK_CONTAINER(w->win), w->notebook);

  tab_new(w);

  gtk_widget_show_all(w->win);

  /* add the callback signals */
  g_signal_connect(G_OBJECT(w->win), "key-press-event", G_CALLBACK(event_key), w);
  g_signal_connect(G_OBJECT(w->notebook), "switch-page", G_CALLBACK(tab_focus), w);
  g_signal_connect(G_OBJECT(w->win), "destroy", G_CALLBACK(window_destroy), w);

  set_window_title(get_current_term(w));
} 
Example #3
0
File: main.c Project: dluco/hydra
/* main entry-point */
int main(int argc, char *argv[])
{
	gboolean version = FALSE;
	gboolean fullscreen = FALSE;
	char *geometry = NULL;
	char **uris = NULL;
	GError *error = NULL;

	GOptionEntry entries[] = {
		{ "version", 'v', 0, G_OPTION_ARG_NONE, &version, "Print version number", NULL },
		{ "fullscreen", 0, 0, G_OPTION_ARG_NONE, &fullscreen, "Fullscreen mode", NULL },
		{ "geometry", 'g', 0, G_OPTION_ARG_STRING, &geometry, "X geometry specification", "GEOMETRY" },
		{ G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &uris, "Addresses", NULL },
		{ NULL }
	};

	/* initialize GTK and parse commandline options */
	if (!gtk_init_with_args(&argc, &argv, "[addresses]", entries, NULL, &error)) {
		die("%s\n", error->message);
	}

	if (version) {
		printf("hydra %s, 2014 David Luco\n", VERSION);
		exit(EXIT_SUCCESS);
	}

	/* create top level Hydra struct */
	hydra = g_new0(Hydra, 1);

	/* create first browser and add to browsers list */
	Browser *b = browser_new();
	hydra->browsers = g_list_append(hydra->browsers, b);

	if (fullscreen) {
		gtk_window_fullscreen(GTK_WINDOW(b->window));
	}
	
	if (uris) {
		/* load first uri in first tab (already created) */
		tab_load_uri(browser_get_current_tab(b), *uris++);
		/* load other uris (if any) in new tabs */
		while (uris && *uris) {
			tab_load_uri(tab_new(b, "Loading..."), *uris++);
		}
	} else {
		/* load homepage on startup */
		tab_load_uri(browser_get_current_tab(b), DEFAULT_HOME);
	}

	gtk_main();

	return 0;
}
Example #4
0
/* key event handler */
gboolean event_key(GtkWidget *widget, GdkEventKey *event, window *w) {
  guint(g) = event->keyval;
  if ((event->state & (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) ==
      (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) {
    if (g == GDK_N) {
      new_window();
      return TRUE;
    }
    if (g == GDK_T) {
      tab_new(w);
      return TRUE;
    }
    if (g == GDK_H) {
      tab_togglebar(w);
      return TRUE;
    }
    if (g == GDK_W) {
      tab_close(NULL, w);
      return TRUE;
    }
    if (g == GDK_V) {
      vte_terminal_paste_clipboard(VTE_TERMINAL(get_current_term(w)->vte));
      return TRUE;
    }
    if (g == GDK_C) {
      vte_terminal_copy_clipboard(VTE_TERMINAL(get_current_term(w)->vte));
      return TRUE;
    }
  }
  if ((event->state & (GDK_MOD1_MASK) ) == (GDK_MOD1_MASK)) {
    if (g == GDK_Left) {
      tab_switch(FALSE, w);
      return TRUE;
    }
    if (g == GDK_Right) {
      tab_switch(TRUE, w);
      return TRUE;
    }
    if (g == GDK_F11) {
      if(config->fullscreen) {
        gtk_window_unfullscreen(GTK_WINDOW(widget));
        config->fullscreen = FALSE;
      } else {
        gtk_window_fullscreen(GTK_WINDOW(widget));
        config->fullscreen = TRUE;
      }
      return TRUE;
    }
  }
  return FALSE;
}
Example #5
0
static int
view_contacts_key_enter(int k)
{
	struct view *v;
	struct tab *t;

	v = view_chat_find_by_contact(view_contacts_contact_current->c_key);
	if (v == NULL) {
		t = tab_new(view_contacts_contact_current->c_nickname);
		v = view_init("chat");
		view_chat_set_contact(v, view_contacts_contact_current->c_key);
		tab_push_view(t, v);
		tab_show(t);
	} else {
		tab_show(v->v_tab);
	}
	chat_connect(view_contacts_contact_current);

	return CONTROLLERS_STOP;
}