Exemplo n.º 1
0
Arquivo: ui.c Projeto: senko/mawire
GtkWidget *
show_main_window (GCallback installed_db_cb, GCallback custom_db_cb,
    GCallback about_cb, GCallback search_clicked_cb,
    GCallback random_clicked_cb)
{
  GtkWidget *window;
  GtkWidget *search_btn;
  GtkWidget *random_btn;
  GtkWidget *label;
  GtkWidget *image;
  GtkWidget *vbox;
  GtkWidget *hbox;

  window = hildon_stackable_window_new ();

  g_signal_connect (G_OBJECT (window), "delete-event",
      G_CALLBACK (gtk_main_quit), NULL);

  hildon_window_set_app_menu (HILDON_WINDOW (window),
      HILDON_APP_MENU (create_app_menu (window,
          installed_db_cb, custom_db_cb, about_cb)));

  vbox = gtk_vbox_new (FALSE, 0);
  hbox = gtk_hbox_new (TRUE, 10);

  label = gtk_label_new ("Mawire, the offline Wikipedia reader");
  g_object_set (G_OBJECT (label), "wrap", TRUE, NULL);

  image = gtk_image_new_from_file (MAIN_WINDOW_IMAGE);

  gtk_box_pack_start (GTK_BOX (vbox), image, TRUE, TRUE, 5);
  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 5);

  search_btn = hildon_button_new_with_text (
      HILDON_SIZE_FINGER_HEIGHT,
      HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
      "Search", NULL);

  random_btn = hildon_button_new_with_text (
      HILDON_SIZE_FINGER_HEIGHT,
      HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
      "Random", NULL);

  gtk_box_pack_start (GTK_BOX (hbox), search_btn, TRUE, TRUE, 5);
  gtk_box_pack_start (GTK_BOX (hbox), random_btn, TRUE, TRUE, 5);
  gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, FALSE, 5);

  gtk_container_add (GTK_CONTAINER (window), vbox);

  g_signal_connect (G_OBJECT (search_btn), "clicked",
      G_CALLBACK (search_clicked_cb), window);

  g_signal_connect (G_OBJECT (random_btn), "clicked",
      G_CALLBACK (random_clicked_cb), window);

  return window;
}
int
main                                            (int argc,
                                                 char **argv)
{
    GtkWidget *win;
    GtkWidget *label;
    GtkWidget *label2;
    GtkBox *vbox;
    HildonAppMenu *menu;
    GtkAccelGroup *accel;

    hildon_gtk_init (&argc, &argv);

    label = gtk_label_new ("This is an example of the\nHildonAppMenu widget.\n\n"
                           "Click on the titlebar\nto pop up the menu.");
    label2 = gtk_label_new ("No menu option has been selected yet.");

    accel = gtk_accel_group_new ();

    gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);
    gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_CENTER);

    vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));
    win = hildon_stackable_window_new ();

    menu = create_menu (label2, accel);

    hildon_window_set_app_menu (HILDON_WINDOW (win), menu);

    gtk_window_add_accel_group (GTK_WINDOW (win), accel);
    g_object_unref (accel);

    gtk_box_pack_start (vbox, label, TRUE, TRUE, 0);
    gtk_box_pack_start (vbox, label2, TRUE, TRUE, 0);

    gtk_container_set_border_width (GTK_CONTAINER (win), 20);
    gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));

    g_signal_connect (win, "delete_event", G_CALLBACK (gtk_main_quit), NULL);

    gtk_widget_show_all (win);

    gtk_main ();

    return 0;
}
Exemplo n.º 3
0
void maemo_init(int *argc, char ***argv)
{
	FILE* pFile;
	pFile = fopen("/opt/psx4m/keys", "r"); // assume the file exists and has data
	int ch;
	int i=0;
	for (i=0;i<65536;i++)
		keymap[i]=164;
	if (NULL != pFile) {
		for(i=0;i<21;i++){
			fscanf(pFile, "%i",&ch);
			keymap[ch]=i;
		}
		fclose(pFile);
	}
	
	gtk_init (argc, argv);

	window = hildon_stackable_window_new ();
	gtk_widget_realize (window);
	gtk_window_fullscreen (GTK_WINDOW(window));
	g_signal_connect (G_OBJECT (window), "key-press-event",
				G_CALLBACK (window_key_proxy), NULL);
	g_signal_connect (G_OBJECT (window), "key-release-event",
				G_CALLBACK (window_key_proxy), NULL);
	g_signal_connect (G_OBJECT (window), "delete_event",
				G_CALLBACK (hildon_quit), NULL);
	gtk_widget_add_events (window,
				GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);

	actor = HILDON_ANIMATION_ACTOR (hildon_animation_actor_new());
	hildon_animation_actor_set_position (actor, (X_RES - D_WIDTH)/2, (Y_RES - D_HEIGHT)/2 );
	hildon_animation_actor_set_parent (actor, GTK_WINDOW (window));

	drawing = gtk_image_new ();

	gtk_container_add (GTK_CONTAINER (actor), drawing);

	gtk_widget_show_all (GTK_WIDGET (actor));
	gtk_widget_show_all (GTK_WIDGET (window));
}
int
main                                            (int    argc,
                                                 char **argv)
{
    GtkWidget *win;
    GtkWidget *showprogressbutton, *hideprogressbutton;
    GtkBox *vbox;

    hildon_gtk_init (&argc, &argv);

    /* Window and vbox to pack everything */
    win = hildon_stackable_window_new ();
    vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));

    /* Buttons */
    showprogressbutton = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
    gtk_button_set_label (GTK_BUTTON (showprogressbutton), "Show progress indicator");

    hideprogressbutton = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
    gtk_button_set_label (GTK_BUTTON (hideprogressbutton), "Hide progress indicator");

    /* Pack all widgets */
    gtk_box_pack_start (GTK_BOX (vbox), showprogressbutton, TRUE, TRUE, 0);
    gtk_box_pack_start (GTK_BOX (vbox), hideprogressbutton, TRUE, TRUE, 0);

    gtk_container_set_border_width (GTK_CONTAINER (win), 20);
    gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));

    /* Connect signals */
    g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
    g_signal_connect (showprogressbutton, "clicked",
                      G_CALLBACK (show_progress_button_clicked), win);
    g_signal_connect (hideprogressbutton, "clicked",
                      G_CALLBACK (hide_progress_button_clicked), win);

    /* Run example */
    gtk_widget_show_all (win);
    gtk_main ();

    return 0;
}
ZLGtkApplicationWindow::ZLGtkApplicationWindow(ZLApplication *application) :
	ZLApplicationWindow(application),
	KeyActionOnReleaseNotOnPressOption(ZLCategoryKey::CONFIG, "KeyAction", "OnRelease", false),
	myFullScreen(false) {
	myProgram = HILDON_PROGRAM(hildon_program_get_instance());
	g_set_application_name("");

	myWindow = HILDON_WINDOW(hildon_stackable_window_new());

	((ZLMaemoCommunicationManager&)ZLCommunicationManager::Instance()).init();

	myMenu = HILDON_APP_MENU(hildon_app_menu_new());
	hildon_window_set_app_menu(myWindow, myMenu);

	hildon_program_add_window(myProgram, myWindow);
	gtk_widget_show_all(GTK_WIDGET(myWindow));

	myViewWidget = 0;

	ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myWindow), "delete_event", GTK_SIGNAL_FUNC(applicationQuit), this);
	ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myWindow), "key_press_event", GTK_SIGNAL_FUNC(handleKeyPress), this);
	ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myWindow), "key_release_event", GTK_SIGNAL_FUNC(handleKeyRelease), this);
}
Exemplo n.º 6
0
Arquivo: ui.c Projeto: senko/mawire
GtkWidget *
show_results_window (gchar *query, GList *results,
  GCallback selected_cb)
{
  GtkWidget *win;
  GtkWidget *pannable;
  GtkWidget *view;
  GtkListStore *model;
  GtkWidget *aa;
  GtkWidget *n_results_label;
  GtkTreePath *exact_match = NULL;
  gchar *query_icase;
  gint n_results;
  gchar *tmp;

  query_icase = g_utf8_casefold (query, -1);
  n_results = g_list_length (results);

  DEBUG ("Showing %d results for: %s", n_results, query);

  win = hildon_stackable_window_new ();
  gtk_window_set_title (GTK_WINDOW (win), "Search results");

  g_signal_connect (G_OBJECT (win), "delete-event",
      G_CALLBACK (gtk_widget_destroy), win);

  pannable = hildon_pannable_area_new ();

  g_object_set (pannable,
      "mov-mode", HILDON_MOVEMENT_MODE_VERT,
      "hscrollbar-policy", GTK_POLICY_NEVER,
      NULL);

  view = create_tree_view (&model);

  aa = hildon_tree_view_get_action_area_box (GTK_TREE_VIEW (view));
  hildon_tree_view_set_action_area_visible (GTK_TREE_VIEW (view), TRUE);

  tmp = g_strdup_printf ("Found %s%d articles about %s",
      (n_results == 500) ? "more than " : "",
      n_results, query);

  n_results_label = gtk_label_new (tmp);
  g_free (tmp);

  gtk_container_add (GTK_CONTAINER (aa), n_results_label);
  gtk_container_add (GTK_CONTAINER (win), pannable);
  gtk_container_add (GTK_CONTAINER (pannable), view);

  g_signal_connect (G_OBJECT (view), "row-activated",
      G_CALLBACK (row_activated_cb), selected_cb);

  while (results)
    {
      GtkTreeIter iter;
      tmp = results->data;
      gchar *tmp_icase = g_utf8_casefold (tmp, -1);

      gtk_list_store_insert_with_values (model, &iter, -1, 0, tmp, -1);

      if (!g_utf8_collate (tmp_icase, query_icase))
          exact_match = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter);

      results = g_list_remove (results, tmp);
      g_free (tmp);
      g_free (tmp_icase);
    }

  /* if there's exact match in the results, we want to scroll
   * to it so the user doesn't need to scroll potentially huge
   * list to find it. */
  if (exact_match)
    {
      gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (view), exact_match,
          NULL, FALSE, 0.0, 0.0);
      gtk_tree_path_free (exact_match);
      exact_match = NULL;
    }

  gtk_widget_show_all (win);
  return win;
}
Exemplo n.º 7
0
Arquivo: ui.c Projeto: senko/mawire
GtkWidget *
show_article_window (gchar *title, gchar *text)
{
  GtkWidget *win;
  GtkWidget *pannable;
  GtkWidget *vbox;
  GtkWidget *title_label;
  GtkWidget *text_box;
  GtkTextBuffer *buffer;
  GtkWidget *more;
  gchar *pango;

  win = hildon_stackable_window_new ();
  gtk_window_set_title (GTK_WINDOW (win), title);

  g_signal_connect (G_OBJECT (win), "delete-event",
      G_CALLBACK (gtk_widget_destroy), win);

  pannable = hildon_pannable_area_new ();

  g_object_set (pannable,
      "mov-mode", HILDON_MOVEMENT_MODE_VERT,
      "hscrollbar-policy", GTK_POLICY_NEVER,
      NULL);

  pango = g_markup_printf_escaped ("<span size='xx-large'>%s</span>", title);
  title_label = gtk_label_new (NULL);
  gtk_label_set_markup (GTK_LABEL (title_label), pango);
  gtk_misc_set_alignment (GTK_MISC (title_label), 0.0, 0.5);
  g_object_set (G_OBJECT (title_label), "wrap", TRUE, NULL);

  text_box = hildon_text_view_new ();
  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_box), GTK_WRAP_WORD_CHAR);
  g_object_set (text_box, "editable", FALSE, NULL);
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_box));

  gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD,
      NULL);
  gtk_text_buffer_create_tag (buffer, "emph", "style", PANGO_STYLE_ITALIC,
      NULL);

  insert_text (buffer, text);
  vbox = gtk_vbox_new (FALSE, 10);

  gtk_box_pack_start (GTK_BOX (vbox), title_label, FALSE, FALSE, 10);
  gtk_box_pack_start (GTK_BOX (vbox), text_box, TRUE, TRUE, 0);

  more = hildon_button_new_with_text (
      HILDON_SIZE_FINGER_HEIGHT,
      HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
      "Read complete article on Wikipedia", NULL);
  gtk_box_pack_start (GTK_BOX (vbox), more, FALSE, FALSE, 0);

  gtk_container_add (GTK_CONTAINER (win), pannable);
  hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (pannable),
      vbox);

  g_signal_connect (G_OBJECT (more), "clicked",
      G_CALLBACK (open_in_browser), g_strdup (title)); /* FIXME: memleak! */

  gtk_widget_show_all (win);
  return win;
}