Example #1
0
/* main function */
int main(int argc, char **argv)
{
   // if etk init fails, print error msg to stderr
   if(!etk_init(argc, argv))
   {
      fprintf(stderr, _("Could not init Etk. Exiting...\n"));
      return 1;
   }
   // if you set --help in arguments, it will print some help information
   if(etk_argument_is_set("help", 0, ETK_FALSE))
   {
      printf(_("Usage: etk_prefs ARGUMENTS\n"));
      printf(_("ARGUMENTS:\n"));
      printf(_("   --help : print this message\n"));
      printf(_("   --theme=THEME : set theme from command line\n"));
      printf(_("   --themes-list : list themes\n"));
      return 0;
   }
   else if(etk_argument_is_set("themes-list", 0, ETK_FALSE)) // or if you will set --themes-list, it will print a list of available themes
   {
      Eina_List *themes;
      Eina_List *l;
      char *theme;
      themes = etk_theme_widget_available_themes_get();
      for(l = themes; l; l = l->next)
      {	 
	 theme = l->data;
         printf("%s\n", theme);
      }
      return 0;
   }
   
   etk_argument_value_get("theme", 0, ETK_FALSE, &_widget_theme); // if --theme argument set, it will set theme from commandline, if bad theme provided, it will print error to stderr
   if (_widget_theme)
   {
      if (etk_theme_widget_find(_widget_theme))
      {
         _etk_prefs_widget_theme = strdup(_widget_theme);   
         _etk_prefs_apply(); // apply changes
         etk_config_save(); // save them
         return 0;
      }
      else
      {
         fprintf(stderr, _("Theme %s not found. Exitting..\n"), _widget_theme); // print error message
         return 1;
      }
   }
   
   etk_prefs_show(); // show etk_prefs dialog
   
   etk_main(); // main loop
   etk_shutdown(); // shutdown etk
   
   return 0; // return success
}
Example #2
0
int
main (int argc, char *argv[])
{
  Etk_Widget    *window;
  Etk_Widget    *hpaned, *vpaned;
  Etk_Widget    *tree;
  Etk_Widget    *list;
  Etk_Widget    *pdf;
  Etk_Tree_Col  *col;
  Etk_Tree_Row  *row;
  Ecore_List    *index;
  Epdf_Document *document;
  int            page_count;
  int            i;

  if (argc == 1) {
    printf ("Usage: %s pdf_file\n", argv[0]);
    return -1;
  }

  etk_init (argc, argv);

  /* We open the pdf file */
  pdf = etk_pdf_new ();
  etk_pdf_file_set (ETK_PDF (pdf), argv[1]);
  document = ETK_PDF (pdf)->pdf_document;
  if (!document) {
    printf ("The file %s can't be opened\n", argv[1]);
    etk_shutdown ();
    return -1;
  }

  window = etk_window_new ();
  etk_window_title_set (ETK_WINDOW (window), "Etk Pdf Test Application");
  etk_signal_connect ("delete-event", ETK_OBJECT (window),
                      ETK_CALLBACK(_quit_cb), NULL);

  hpaned = etk_hpaned_new();
  etk_container_add (ETK_CONTAINER (window), hpaned);
  etk_widget_show (hpaned);

  vpaned = etk_vpaned_new();
  etk_paned_child1_set (ETK_PANED (hpaned), vpaned, 0);
  etk_widget_show (vpaned);

  index = etk_pdf_pdf_index_get (ETK_PDF (pdf));
  if (index) {
    Etk_Tree_Col *col;

    tree = etk_tree_new ();
    etk_tree_mode_set (ETK_TREE (tree), ETK_TREE_MODE_TREE);
    etk_tree_multiple_select_set (ETK_TREE (tree), ETK_FALSE);

    /* column */
    col = etk_tree_col_new (ETK_TREE (tree), "Index", 130, 0.0);
    etk_tree_col_model_add (col, etk_tree_model_text_new());

    etk_tree_build (ETK_TREE (tree));

    /* rows */
    _tree_fill (ETK_PDF (pdf), ETK_TREE (tree), col, NULL, index);
    epdf_index_delete (index);

    /* change page */
    etk_signal_connect ("row-clicked", ETK_OBJECT (tree),
                        ETK_CALLBACK(_change_page_cb), pdf);

    /* we attach and show */
    etk_paned_child1_set (ETK_PANED (vpaned), tree, 0);
    etk_widget_show (tree);
  }

  list = etk_tree_new ();
  etk_tree_headers_visible_set (ETK_TREE (list), ETK_FALSE);
  etk_tree_mode_set (ETK_TREE (list), ETK_TREE_MODE_LIST);
  etk_tree_multiple_select_set (ETK_TREE (list), ETK_FALSE);

  /* column */
  col = etk_tree_col_new (ETK_TREE (list), "", 60, 0.0);
  etk_tree_col_model_add (col, etk_tree_model_int_new());

  etk_tree_build (ETK_TREE (list));

  /* rows */
  page_count = epdf_document_page_count_get (ETK_PDF (pdf)->pdf_document);
  for (i = 0; i < page_count; i++) {
    int  *num;

    row = etk_tree_row_append (ETK_TREE (list), NULL, col, i + 1, NULL);
    num = (int *)malloc (sizeof (int));
    *num = i;
    etk_tree_row_data_set_full (row, num, free);
  }

  /* change page */
  etk_signal_connect ("row-clicked", ETK_OBJECT (list),
                      ETK_CALLBACK(_change_page_cb), pdf);

  /* we attach and show */
  etk_paned_child2_set (ETK_PANED (vpaned), list, 0);
  etk_widget_show (list);

  etk_pdf_scale_set (ETK_PDF (pdf), 0.5, 0.5);
  etk_paned_child2_set (ETK_PANED (hpaned), pdf, 1);
  etk_widget_show (pdf);

  etk_widget_show (window);

  etk_main ();

  etk_shutdown ();

  return 0;
}
Example #3
0
EtkApplication::~EtkApplication()
{
  cout << "EtkApplication::~EtkApplication" << endl;
  etk_shutdown();
}