Beispiel #1
0
static void text_entry_activate(GtkWidget *widget, gpointer data)
{
        char *entry_text = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
        gtk_entry_set_text(GTK_ENTRY(widget), "");
        if (TEXT_ENTRY(widget)->priv->session != NULL) {
                handle_multiline(TEXT_ENTRY(widget)->priv->session,
                                 (char *)entry_text,
                                 TRUE,
                                 FALSE);
        }
        g_free(entry_text);
}
Beispiel #2
0
void
fe_close_window (struct session *sess)
{
    /*
     * There's really no point in doing all of this if the user is
     * quitting the app.  It makes it slow (as they watch individual
     * channels and servers disappear), and the OS is about to free
     * everything much more efficiently than we ever could.
     *
     * If we ever choose to run on Windows ME, this could be a problem :)
     */
    if (gui.quit) {
        session_free (sess);
        return;
    }

    navigation_tree_remove_session (gui.server_tree, sess);
    conversation_panel_remove_session (CONVERSATION_PANEL (gui.conversation_panel), sess);
    topic_label_remove_session (TOPIC_LABEL (gui.topic_label), sess);
    text_entry_remove_session (TEXT_ENTRY (gui.text_entry), sess);
    if (sess->type == SESS_SERVER) {
        status_bar_remove_server (STATUS_BAR (gui.status_bar), sess->server);
    }

    if (sess == gui.current_session) {
        gui.current_session = NULL;
    }

    session_free (sess);
}
Beispiel #3
0
void textEntryDestroyImpl(widget *self)
{
	// Free the text buffer
	free(TEXT_ENTRY(self)->text);
	
	// Call our parents destructor
	widgetDestroyImpl(self);
}
Beispiel #4
0
static void text_entry_finalize(GObject *object)
{
        TextEntry *entry;

        entry = TEXT_ENTRY(object);

        if (entry->priv) {
                g_free(entry->priv);
        }

        G_OBJECT_CLASS(parent_class)->finalize(object);
}
Beispiel #5
0
void
fe_session_callback (struct session *sess)
{
    if (sess->type == SESS_SERVER) {
        status_bar_remove_server (STATUS_BAR (gui.status_bar), sess->server);
    }

    conversation_panel_remove_session (CONVERSATION_PANEL (gui.conversation_panel), sess);
    topic_label_remove_session (TOPIC_LABEL (gui.topic_label), sess);
    text_entry_remove_session (TEXT_ENTRY (gui.text_entry), sess);
    userlist_erase (u, sess);
}
Beispiel #6
0
static void text_entry_history_down(GtkEntry *entry)
{
        TextEntry *text_entry;
        char *new_line;

        text_entry = TEXT_ENTRY(entry);
        if (text_entry->priv->session == NULL) {
                return;
        }

        new_line = history_down(&(text_entry->priv->session->history));
        if (new_line) {
                gtk_entry_set_text(entry, new_line);
                gtk_editable_set_position(GTK_EDITABLE(entry), -1);
        }
}
Beispiel #7
0
void
fe_set_current (session *sess)
{
    // If find bar is open, hide it
    find_bar_close (FIND_BAR (gui.find_bar));

    gui.current_session = sess;

    // Notify parts of the UI that the current session has changed
    conversation_panel_set_current (CONVERSATION_PANEL (gui.conversation_panel), sess);
    topic_label_set_current (TOPIC_LABEL (gui.topic_label), sess);
    text_entry_set_current (TEXT_ENTRY (gui.text_entry), sess);
    status_bar_set_current (STATUS_BAR (gui.status_bar), sess->server);
    navigation_model_set_current (gui.tree_model, sess);

    // Change the window name
    if (sess->server->network == NULL) {
        rename_main_window (NULL, sess->channel);
    } else {
        ircnet *net = sess->server->network;
        rename_main_window (net->name, sess->channel);
    }

    // Set nickname button
    set_nickname_label (sess->server, NULL);

    // Set the label of the user list button
    userlist_set_user_button (u, sess);
    gtk_widget_set_sensitive (GTK_WIDGET (gui.userlist_toggle), sess->type == SESS_CHANNEL);

    // FIXME: Userlist should be more encapsulated
    gtk_tree_view_set_model (GTK_TREE_VIEW (gui.userlist), GTK_TREE_MODEL (userlist_get_store (u, sess)));

    // Emit "focus tab" event for plugins that rely on it
    plugin_emit_dummy_print (sess, "Focus Tab");

    gtk_widget_grab_focus (GTK_WIDGET (gui.text_entry));
}
Beispiel #8
0
void textEntryDoDrawImpl(widget *self)
{
	// Draw our frame
	textEntryDoDrawFrame(TEXT_ENTRY(self));
	textEntryDoDrawText(TEXT_ENTRY(self));
}
Beispiel #9
0
gint
save_dialog                  (  ImageInfo       *info)
{
  GtkWidget *dlg;
  GtkWidget *toggle;
  GtkWidget *hbox;
  GtkWidget *vbox;
  GtkWidget *label;
  GtkWidget *entry;
  GtkWidget *frame;
  GtkWidget *toggle_vbox;
  GSList *group;
  gint use_none = (info->save_vals.compression == COMPRESSION_NONE);
  gint use_lzw = (info->save_vals.compression == COMPRESSION_LZW);
  gint use_packbits = (info->save_vals.compression == COMPRESSION_PACKBITS);
  gint use_deflate = (info->save_vals.compression == COMPRESSION_DEFLATE);
  gint use_sgilog = (info->save_vals.compression == COMPRESSION_SGILOG);
  gint use_pixarlog = (info->save_vals.compression == COMPRESSION_PIXARLOG);
  gint use_jpeg = (info->save_vals.compression == COMPRESSION_JPEG);
  gint use_jp2000 = (info->save_vals.compression == COMPRESSION_JP2000);
  gint use_adobe = (info->save_vals.compression == COMPRESSION_ADOBE_DEFLATE);
  gint use_lsb2msb = (info->save_vals.fillorder == FILLORDER_LSB2MSB);
  gint use_msb2lsb = (info->save_vals.fillorder == FILLORDER_MSB2LSB);
  gint use_sep_planar = (info->planar == PLANARCONFIG_SEPARATE);
  gint use_premultiply =(info->save_vals.premultiply == EXTRASAMPLE_ASSOCALPHA);
  gint use_notpremultiply = (info->save_vals.premultiply == EXTRASAMPLE_UNASSALPHA
                    || info->save_vals.premultiply == EXTRASAMPLE_UNSPECIFIED );
  gint use_icc_profile = (info->save_vals.use_icc_profile == TRUE);
  gint use_no_icc      = (info->save_vals.use_icc_profile == FALSE);
  long dircount;
  gchar text[256];

  gimp_ui_init ("save", TRUE);

  dlg = gimp_dialog_new (_("Save as Tiff"), "save",
                            gimp_standard_help_func, "filters/tiff.html",
                            GTK_WIN_POS_MOUSE,
                            FALSE, TRUE, FALSE,

                            _("OK"), ok_callback,
                            NULL, NULL, NULL, TRUE, FALSE,
                            _("Cancel"), cancel_callback,
                            NULL, 1, NULL, FALSE, TRUE,
 
                            NULL);

  gtk_signal_connect (GTK_OBJECT (dlg), "destroy",
		      (GtkSignalFunc) close_callback,
		      NULL);

  /*  attach profile  */
  //LIST_FRAME (_("ICC Profile data"))
  frame = gtk_frame_new (_("ICC Profile data"));
  gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
  gtk_container_border_width (GTK_CONTAINER (frame), 10);
  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), frame, FALSE, TRUE, 0);
  toggle_vbox = gtk_vbox_new (FALSE, 5);
  gtk_container_border_width (GTK_CONTAINER (toggle_vbox), 5);
  gtk_container_add (GTK_CONTAINER (frame), toggle_vbox);

  group = NULL;

  LIST_TOOGLE ( _("embedd ICC Profile"), use_icc_profile )
  LIST_TOOGLE ( _("dont attach ICC color data"), use_no_icc )

  gtk_widget_show (toggle_vbox);
  gtk_widget_show (frame);
  if (info->save_vals.use_icc_profile == -1)
    gtk_widget_set_sensitive (frame, FALSE); 

  /*  compression  */
  LIST_FRAME (_("Compression"))
  group = NULL;

  LIST_TOOGLE (_("None"), use_none)
#ifdef LZW_SUPPORT
  LIST_TOOGLE (_("LZW"), use_lzw)
#endif
#ifdef PACKBITS_SUPPORT
  LIST_TOOGLE (_("Pack Bits"), use_packbits)
#endif
/*#ifdef ZIP_SUPPORT */
  LIST_TOOGLE ( _("Deflate"), use_deflate)
/*#endif */
/*#ifdef LOGLUV_SUPPORT */
  LIST_TOOGLE (_("SGILOG (32-bit)") , use_sgilog)
  gtk_widget_set_sensitive (toggle, FALSE);
  if (info->bps >= 32 && SGILOGDATAFMT == SGILOGDATAFMT_FLOAT) {
    if (info->profile_size) {
      cmsHPROFILE p = cmsOpenProfileFromMem (info->icc_profile,
                                             info->profile_size);
      if (cmsGetColorSpace(p) == icSigXYZData
       || cmsGetColorSpace(p) == icSigRgbData)
        gtk_widget_set_sensitive (toggle, TRUE);
    }
  }
/*#endif */
#if 0
/*#ifdef PIXARLOG_SUPPORT */
  LIST_TOOGLE ( _("PixarLOG (11-bit)"), use_pixarlog)
  if (info->bps < 32 && SGILOGDATAFMT == SGILOGDATAFMT_FLOAT)
    gtk_widget_set_sensitive (toggle, FALSE); 
/*#endif */
#endif
/*#ifdef JPEG_SUPPORT */
  LIST_TOOGLE ( _("JPEG"), use_jpeg)
  if (info->bps > 8)
    gtk_widget_set_sensitive (toggle, FALSE); 
#if 0
  LIST_TOOGLE ( _("JP2000"), use_jp2000)
#endif
/*#endif */
  LIST_TOOGLE ( _("Adobe"), use_adobe)

  gtk_widget_show (toggle_vbox);
  gtk_widget_show (frame);

  /*  fillorder  */
  LIST_FRAME (_("Fill Order"))
  group = NULL;

  LIST_TOOGLE ( _("LSB to MSB"), use_lsb2msb )
  LIST_TOOGLE ( _("MSB to LSB"), use_msb2lsb )

  gtk_widget_show (toggle_vbox);
  gtk_widget_show (frame);

  /*  premultiply  */
  LIST_FRAME (_("Transparency Computation"))
  group = NULL;

  sprintf (text,_("Premultiply Colour (associate)"));
  if ( info->photomet == PHOTOMETRIC_RGB )
    sprintf (text,"%s - Standard", text);
  LIST_TOOGLE ( text, use_premultiply )
  LIST_TOOGLE ( _("Dont Premultiply"), use_notpremultiply )

  gtk_widget_show (toggle_vbox);
  gtk_widget_show (frame);

  /* separate planes */
  hbox = gtk_hbox_new (FALSE, 1);
  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), hbox, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
  gtk_widget_show (hbox);
 
  toggle = gtk_check_button_new_with_label (_("Write Separate Planes per Channel"));
  gtk_box_pack_start (GTK_BOX (hbox), toggle, TRUE, TRUE, 0);
  gtk_widget_show (toggle);

  gtk_signal_connect (GTK_OBJECT (toggle), "toggled",
		      GTK_SIGNAL_FUNC (gimp_toggle_button_update),
		      &use_sep_planar);
  gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (toggle), use_sep_planar);

  vbox = gtk_vbox_new (FALSE, 2);
  gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), vbox, FALSE, TRUE, 0);

  if (info->save_vals.premultiply == EXTRASAMPLE_UNSPECIFIED)
    gtk_widget_set_sensitive (frame, FALSE); 


  TEXT_ENTRY ( _("Artist:"), text_entry_callback , image_artist )
  TEXT_ENTRY ( _("Copyright:"), text_entry_callback , image_copyright )
  TEXT_ENTRY ( _("Comment:"), text_entry_callback , image_comment )

  gtk_widget_show (vbox);

  gtk_widget_show (frame);

  gtk_widget_show (dlg);

  gtk_main ();
  gdk_flush ();

  if (use_icc_profile)
    tsvals_.use_icc_profile = TRUE;
  else if (use_no_icc)
    tsvals_.use_icc_profile = FALSE;

  if (use_none)
    tsvals_.compression = COMPRESSION_NONE;
  else if (use_lzw)
    tsvals_.compression = COMPRESSION_LZW;
  else if (use_packbits)
    tsvals_.compression = COMPRESSION_PACKBITS;
  else if (use_deflate)
    tsvals_.compression = COMPRESSION_DEFLATE;
  else if (use_sgilog)
    tsvals_.compression = COMPRESSION_SGILOG;
  else if (use_pixarlog)
    tsvals_.compression = COMPRESSION_PIXARLOG;
  else if (use_jpeg)
    tsvals_.compression = COMPRESSION_JPEG;
  else if (use_jp2000)
    tsvals_.compression = COMPRESSION_JP2000;
  else if (use_adobe)
    tsvals_.compression = COMPRESSION_ADOBE_DEFLATE;

  if (use_lsb2msb)
    tsvals_.fillorder = FILLORDER_LSB2MSB;
  else if (use_msb2lsb)
    tsvals_.fillorder = FILLORDER_MSB2LSB;

  if(use_sep_planar)
    tsvals_.planar_separate = PLANARCONFIG_SEPARATE;
  else
    tsvals_.planar_separate = PLANARCONFIG_CONTIG;

  if (use_premultiply
   && info->save_vals.premultiply != EXTRASAMPLE_UNSPECIFIED) {
    tsvals_.premultiply = EXTRASAMPLE_ASSOCALPHA;
  } else if (use_notpremultiply
        && info->save_vals.premultiply != EXTRASAMPLE_UNSPECIFIED) {
    tsvals_.premultiply = EXTRASAMPLE_UNASSALPHA;
  }

  info = info->top;
  for (dircount=0; dircount < info->pagecount ; dircount++) {
    if (dircount > 0)
      info = info->next;
 
    info->save_vals.use_icc_profile = tsvals_.use_icc_profile;
    info->save_vals.compression = tsvals_.compression;
    info->save_vals.fillorder = tsvals_.fillorder;
    if (info->save_vals.premultiply != EXTRASAMPLE_UNSPECIFIED) {
      info->save_vals.premultiply = tsvals_.premultiply;
    }
    if (use_sgilog || use_pixarlog) {
      if (info->spp > 2)
        info->photomet = PHOTOMETRIC_LOGLUV;
      else
        info->photomet = PHOTOMETRIC_LOGL;
      if (use_sgilog)
        info->logDataFMT = SGILOGDATAFMT;
      else
        info->logDataFMT = PIXARLOGDATAFMT_FLOAT;
    }
    info->planar = tsvals_.planar_separate;
  }

  info = info->top;

  /*g_message ("%d",tsint.run); */
  return tsint.run;
}