Ejemplo n.º 1
0
static void
connect_dialog_init (ConnectDialog *dialog)
{
    gchar *path = locate_data_file ("connect-dialog.glade");
    g_assert(path != NULL);

    GtkBuilder *xml =  gtk_builder_new ();
    g_assert (gtk_builder_add_from_file ( xml, path, NULL) != 0);

    g_free (path);

#define GW(name) ((dialog->name) = GTK_WIDGET (gtk_builder_get_object (xml, #name)))
    GW(toplevel);
    GW(server_list);
#undef GW

    g_object_unref (xml);

    dialog->server_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
    gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->server_list), GTK_TREE_MODEL (dialog->server_store));

    GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
    GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("name", renderer, "text", 0, NULL);
    gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->server_list), column);

    GtkWidget *button = gtk_button_new_with_mnemonic (_("C_onnect"));
    gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
    gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, GTK_RESPONSE_OK);
    gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);

    GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
    gtk_widget_reparent (dialog->toplevel, content_area);

    g_signal_connect (G_OBJECT (dialog->server_list), "row-activated", G_CALLBACK (row_activated), dialog);

    g_signal_connect (
        G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->server_list))),
        "changed",
        G_CALLBACK (selection_changed),
        dialog);

    for (GSList *netlist = network_list; netlist; netlist = g_slist_next (netlist)) {
        GtkTreeIter iter;

        ircnet *net = netlist->data;
        gtk_list_store_append (dialog->server_store, &iter);
        gtk_list_store_set (dialog->server_store, &iter, 0, net->name, 1, net, -1);
    }

    gtk_window_set_default_size (GTK_WINDOW (dialog), 320, 240);
    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
    gtk_window_set_title (GTK_WINDOW (dialog), _("Connect"));
    gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, FALSE);
    g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (dialog_response), NULL);
    g_signal_connect (G_OBJECT (dialog), "key-press-event", G_CALLBACK (dialog_escape_key_handler_destroy), NULL);
}
Ejemplo n.º 2
0
/**
 * Load a file in memory buffer already allocated
 * @param filename the file which should be loaded
 * @param buffer pointer to the buffer where data are stored
 * @return boolean value on success or failure
 */
bool
loadfile_into_buffer (const char *const filename, char *const buffer)
{
  size_t fsize;
  FILE *fstream;
  char *pathname = locate_data_file (filename);
  if (pathname == NULL)
    {
      LOG_ERR ("can't locate file: '%s'", filename);
      return FALSE;
    }
#ifdef WIN32
  fstream = fopen (pathname, "rb");
#else
  fstream = fopen (pathname, "r");
#endif
  if (fstream == NULL)
    {
#if defined(_WIN32_WCE)
      LOG_ERR ("can't open \"%s\" file", pathname);
#else
      LOG_ERR ("can't open \"%s\" file (%s)", pathname, strerror (errno));
#endif
      free_memory (pathname);
      return FALSE;
    }
  fsize = get_file_size (fstream);
  if (fsize == 0)
    {
      fclose (fstream);
      LOG_ERR ("file \"%s\" is empty!", filename);
      return FALSE;
    }
  if (fread (buffer, sizeof (char), fsize, fstream) != fsize)
    {
#if defined(_WIN32_WCE)
      LOG_ERR ("can't read \"%s\" file", pathname);
#else
      LOG_ERR ("can't read \"%s\" file (%s)", pathname, strerror (errno));
#endif
      fclose (fstream);
      free_memory (pathname);
      return FALSE;
    }
  fclose (fstream);
  LOG_DBG ("\"%s\" file was loaded in memory", pathname);
  free_memory (pathname);
  return TRUE;
}
Ejemplo n.º 3
0
//------------------------------------------------------------------------------
// load a file in memory 
// input => _pNomFichier : filename
// sortie <= _pMemoire   : ptr/integer 
//------------------------------------------------------------------------------
char *chargeFichier(char *_pNomFichier, unsigned int *pTaille)
{
  int _iHandle;
  char *_pMemoire;
  struct stat sDescriptionFichier;
  char *pathname = locate_data_file(_pNomFichier);
  if(pathname == 0)
  { printf("linuxroutines/chargeFichier() : can't locate file : %s\n\n", _pNomFichier);
    return 0;
  }
#ifdef WIN32
  _iHandle = open(pathname, O_RDONLY | O_BINARY, 0); 
#else
  _iHandle = open(pathname, O_RDONLY, 0); 
#endif
  if(_iHandle == -1)
  { printf("linuxroutines/chargeFichier() : can't open file : %s (%s)\n\n", pathname, strerror(errno));
    //free(pathname);
    return 0;
  }
  if(fstat(_iHandle, &sDescriptionFichier))
  { printf("linuxroutines/chargeFichier() : can't stat file : %s (%s)\n\n", pathname, strerror(errno));
    close(_iHandle);
    //free(pathname);
    return 0;
  }
  (*pTaille) = sDescriptionFichier.st_size;                    //sauve taille
  _pMemoire = reserveMemoire(sDescriptionFichier.st_size);     //reserve la place en memoire pour lire le fichier
  if(!_pMemoire)
  { printf("linuxroutines/chargeFichier() %s : out of memory\n\n", pathname);
    close(_iHandle);
    //free(pathname);
    return 0;
  }
  if(read(_iHandle, _pMemoire, sDescriptionFichier.st_size) != sDescriptionFichier.st_size)
  { libereMemoire(_pMemoire);
    printf("linuxroutines/chargeFichier() can't read file %s (%s)\n\n", pathname, strerror(errno));
    close(_iHandle);
    //free(pathname);
    return 0;
  }
  close(_iHandle);
#ifdef _VERBEUX_
  if(iVerbeux > 1)
    printf("linuxroutines/chargeFichier : file %s was loaded in memory\n", pathname);
#endif
  //free(pathname);
  return _pMemoire;
}
Ejemplo n.º 4
0
gboolean initialize_gui_1(void)
{
        gui.initialized = FALSE;

        gui.manager = gtk_ui_manager_new();

        gchar *path = locate_data_file("xchat-gnome.glade");
        g_assert(path != NULL);

        gui.xml = gtk_builder_new();
        g_assert(gtk_builder_add_from_file(gui.xml, path, NULL) != 0);

        g_free(path);

        return TRUE;
}
Ejemplo n.º 5
0
/**
 * Allocate memory and load a file there
 * @param filename the file which should be loaded
 * @param fsize pointer on the size of file which will be loaded
 * @return file data buffer pointer
 */
char *
loadfile (const char *const filename, Uint32 * const fsize)
{
  char *buffer;
  char *pathname = locate_data_file (filename);
  if (pathname == NULL)
    {
      LOG_ERR ("can't locate file %s", filename);
      return NULL;
    }
  buffer = load_absolute_file (pathname, fsize);
  if (buffer == NULL)
    {
      free_memory (pathname);
      return NULL;
    }
  free_memory (pathname);
  return buffer;
}
Ejemplo n.º 6
0
//------------------------------------------------------------------------------
// load a file in memory / charge un fichier en memoire
// input   => _pNomFichier : filename / nom du fichier
//         => _pMemoire    : pointer to memory / pointeur sur la memoire   
// output <= 1             : 0 error/erreur
//------------------------------------------------------------------------------
int chargeFichier(char *_pNomFichier, char *_pMemoire)
{
  int                     _iHandle;
  struct stat             sDescriptionFichier;
  char                   *pathname = locate_data_file(_pNomFichier);
  if(pathname == 0)
  { printf("linuxroutines/chargeFichier() : can't locate file : %s\n\n", _pNomFichier);
    return 0;
  }
#ifdef WIN32
  _iHandle = open(pathname, O_RDONLY | O_BINARY, 0); 
#else
  _iHandle = open(pathname, O_RDONLY, 0); 
#endif
  if(_iHandle == -1)
  { printf ("linuxroutines.cpp/chargeFichier() : can't open file : %s (%s)\n\n", pathname, strerror(errno));
    //free(pathname);
    return 0;
  }
  if(fstat(_iHandle, &sDescriptionFichier))
  { printf ("linuxroutines.cpp/chargeFichier() : can't stat file : %s (%s)\n\n", pathname, strerror(errno));
    close(_iHandle);
    //free(pathname);
    return 0;
  }
  if(read(_iHandle, _pMemoire, sDescriptionFichier.st_size) != sDescriptionFichier.st_size)
  { printf("linuxroutines.cpp/chargeFichier() can't read file %s (%s)\n\n", pathname, strerror(errno));
    close(_iHandle);
    //free(pathname);
    return 0;
  }
  close(_iHandle);
#ifdef _VERBEUX_
  if(iVerbeux > 1) printf("linuxroutines/chargeFichier : file %s was loaded in memory\n", pathname);
#endif
  //free(pathname);
  return 1;
}
Ejemplo n.º 7
0
static void
preferences_dialog_init (PreferencesDialog *p)
{
	GtkCellRenderer *icon_renderer, *text_renderer;
	GtkTreeViewColumn *column;
	GtkTreeSelection *select;

	p->gconf = NULL;
	p->dialog = NULL;

	gchar *path = locate_data_file ("preferences-dialog.glade");
	g_assert (path != NULL);

        GtkBuilder *xml = gtk_builder_new ();
	g_assert (gtk_builder_add_from_file ( xml, path, NULL) != 0); 

	g_free (path);

#define GW(name) ((p->name) = GTK_WIDGET (gtk_builder_get_object (xml, #name)))
	GW(dialog);
	GW(settings_page_list);
	GW(settings_notebook);
#undef GW

	p->gconf = gconf_client_get_default ();

	g_assert (p->dialog);

	g_signal_connect (p->dialog, "response", G_CALLBACK (preferences_response), p);
	g_signal_connect (p->dialog, "key-press-event", G_CALLBACK (dialog_escape_key_handler_hide), NULL);

	gtk_notebook_set_show_tabs (GTK_NOTEBOOK (p->settings_notebook), FALSE);

	p->page_store = gtk_list_store_new (4, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT, G_TYPE_POINTER);
	gtk_tree_view_set_model (GTK_TREE_VIEW (p->settings_page_list), GTK_TREE_MODEL (p->page_store));
	column = gtk_tree_view_column_new ();
	icon_renderer = gtk_cell_renderer_pixbuf_new ();
	text_renderer = gtk_cell_renderer_text_new ();
	gtk_tree_view_column_pack_start (column, icon_renderer, FALSE);
	gtk_tree_view_column_set_attributes (column, icon_renderer, "pixbuf", 0, NULL);
	gtk_tree_view_column_pack_start (column, text_renderer, FALSE);
	gtk_tree_view_column_set_attributes (column, text_renderer, "text", 1, NULL);
	gtk_tree_view_append_column (GTK_TREE_VIEW (p->settings_page_list), column);

	select = gtk_tree_view_get_selection (GTK_TREE_VIEW (p->settings_page_list));
	gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
	g_signal_connect (G_OBJECT (select), "changed", G_CALLBACK (page_selection_changed), p);

	p->irc_page      = preferences_page_irc_new      (p, xml);
	p->spellcheck_page= preferences_page_spellcheck_new (p,xml);
	p->colors_page   = preferences_page_colors_new   (p, xml);
	p->effects_page  = preferences_page_effects_new  (p, xml);
	p->dcc_page      = preferences_page_dcc_new      (p, xml);
	p->networks_page = preferences_page_networks_new (p, xml);
#ifdef USE_PLUGIN
	p->plugins_page  = preferences_page_plugins_new  (p, xml);

	g_signal_connect (p->plugins_page, "new-plugin-page",
			  G_CALLBACK (new_plugin_page), p);
	g_signal_connect (p->plugins_page, "remove-plugin-page",
			  G_CALLBACK (remove_plugin_page), p);
	preferences_page_plugins_check_plugins (p->plugins_page);
#endif
	g_object_unref (xml);
}
Ejemplo n.º 8
0
/**
 * Load configuration file from "~/.tlkgames/powermanga.conf"
 * @return TRUE if it completed successfully or FALSE otherwise
 */
bool
configfile_load (void)
{
#if !defined(_WIN32_WCE)
  Uint32 length;
#endif
  lisp_object_t *root_obj, *lst, *sub;
  char *str;
  /* allocate config structure */
  if (power_conf == NULL)
    {
      power_conf = (config_file *) memory_allocation (sizeof (config_file));
      if (power_conf == NULL)
        {
          LOG_ERR ("not enough memory to allocate 'power_conf'!");
          return FALSE;
        }
    }
  configfile_reset_values ();
  if (!configfile_check_dir ())
    {
      return TRUE;
    }

  if (configname == NULL)
    {
#if defined(_WIN32_WCE)
      configname = locate_data_file (config_file_name);
      if (configname == NULL)
        {
          LOG_ERR ("can't locate file: %s", config_file_name);
          return FALSE;
        }
#else
      length = strlen (config_dir) + strlen (config_file_name) + 2;
      configname = memory_allocation (length);
      if (configname == NULL)
        {
          LOG_ERR ("not enough memory to allocate %i bytes!", length);
          return FALSE;
        }
#endif
    }
  sprintf (configname, "%s/%s", config_dir, config_file_name);
  LOG_INF ("configuration filename: %s", configname);
  root_obj = lisp_read_file (configname);
  if (root_obj == NULL)
    {
      LOG_ERR ("lisp_read_file(%s) failed!", configname);
      return TRUE;
    }
  if (root_obj->type == LISP_TYPE_EOF
      || root_obj->type == LISP_TYPE_PARSE_ERROR)
    {
      LOG_ERR ("lisp_read_file(%s) failed!", configname);
      lisp_free (root_obj);
      return TRUE;
    }
  if (strcmp (lisp_symbol (lisp_car (root_obj)), "powermanga-config") != 0)
    {
      LOG_ERR ("lisp_read_file(%s) failed!", configname);
      lisp_free (root_obj);
      return TRUE;
    }
  lst = lisp_cdr (root_obj);
  if (!lisp_read_string (lst, "lang", &str))
    {
      power_conf->lang = EN_LANG;
    }
  else
    {
      if (strcmp (str, "fr") == 0)
        {
          power_conf->lang = FR_LANG;
        }
      else if (strcmp (str, "it") == 0)
        {
          power_conf->lang = IT_LANG;
        }
      else
        {
          power_conf->lang = EN_LANG;
        }
    }
  if (!lisp_read_bool (lst, "fullscreen", &power_conf->fullscreen))
    {
      power_conf->fullscreen = TRUE;
    }
  if (!lisp_read_bool (lst, "nosound", &power_conf->nosound))
    {
      power_conf->nosound = FALSE;
    }
  if (!lisp_read_bool (lst, "nosync", &power_conf->nosync))
    {
      power_conf->nosync = FALSE;
    }
  if (!lisp_read_int (lst, "verbose", &power_conf->verbose))
    {
      power_conf->verbose = 0;
    }
  if (!lisp_read_int (lst, "scale_x", &power_conf->scale_x))
    {
      power_conf->scale_x = 2;
    }
  if (power_conf->scale_x < 1 || power_conf->scale_x > 4)
    {
      power_conf->scale_x = 2;
    }
  if (!lisp_read_int (lst, "resolution", &power_conf->resolution))
    {
      power_conf->resolution = 640;
    }
  if (power_conf->resolution != 320 && power_conf->resolution != 640)
    {
      power_conf->resolution = 640;
    }
  if (power_conf->scale_x > 1)
    {
      power_conf->resolution = 640;
    }
  sub = search_for (lst, "joy_config");
  if (sub)
    sub = lisp_car_int (sub, &power_conf->joy_x_axis);
  if (sub)
    sub = lisp_car_int (sub, &power_conf->joy_y_axis);
  if (sub)
    sub = lisp_car_int (sub, &power_conf->joy_fire);
  if (sub)
    sub = lisp_car_int (sub, &power_conf->joy_option);
  if (sub)
    sub = lisp_car_int (sub, &power_conf->joy_start);
  lisp_free (root_obj);

configfile_print();

  return TRUE;
}