Ejemplo n.º 1
0
static void
on_retrieve_clicked (GtkButton *button,
                     Widgets *w)
{
  g_return_if_fail (GTK_IS_TEXT_VIEW(w->textview));

  GtkTextBuffer *buffer;
  GtkTextIter    start = {0,};
  GtkTextIter    end = {0,};
  gchar         *text;

  /*
   *  The selected text provides us with two iterators, which we use to display
   *  the substring from buffer to stdout.
   */
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(w->textview));
  gtk_text_buffer_get_selection_bounds (buffer, &start, &end);

  /*
   *  Let's check whether our text selection is non-empty.
   */
  if (gtk_text_iter_equal(&start, &end))
  {
    return;
  }

  text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
  create_message_dialog (w, "Text retrieved", text);
}
Ejemplo n.º 2
0
static GtkResponseType
moo_message_dialog (GtkWidget  *parent,
                    GtkMessageType type,
                    GtkButtonsType buttons,
                    const char *text,
                    const char *secondary_text,
                    GtkResponseType default_response)
{
    GtkWidget *dialog, *toplevel = NULL;
    GtkResponseType response;

    if (parent)
        toplevel = gtk_widget_get_toplevel (parent);
    if (!toplevel || !GTK_IS_WINDOW (toplevel))
        toplevel = NULL;

    dialog = create_message_dialog (toplevel ? GTK_WINDOW (toplevel) : NULL,
                                    type, buttons, text, secondary_text, default_response);
    g_return_val_if_fail (dialog != NULL, GTK_RESPONSE_NONE);

    moo_position_window_real (dialog, parent, FALSE, FALSE, 0, 0);

    response = GtkResponseType (gtk_dialog_run (GTK_DIALOG (dialog)));

    gtk_widget_destroy (dialog);
    return response;
}
Ejemplo n.º 3
0
/**
 * eel_create_question_dialog:
 *
 * Create a dialog asking a question with at least two choices.
 * The caller needs to set up any necessary callbacks
 * for the buttons. The dialog is not yet shown, so that the
 * caller can add additional buttons or make other visual changes
 * without causing flashiness.
 * @question: The text of the question.
 * @answer_0: The label of the leftmost button (index 0)
 * @answer_1: The label of the 2nd-to-leftmost button (index 1)
 * @parent: The parent window for this dialog.
 */
GtkDialog *
eel_create_question_dialog (const char *primary_text,
                            const char *secondary_text,
                            const char *answer_1,
                            int response_1,
                            const char *answer_2,
                            int response_2,
                            GtkWindow *parent)
{
    GtkDialog *dialog;

    dialog = create_message_dialog (primary_text,
                                    secondary_text,
                                    GTK_MESSAGE_QUESTION,
                                    GTK_BUTTONS_NONE,
                                    parent);

    if (g_strcmp0 (answer_1, "process-stop") == 0)
        eel_dialog_add_button (dialog, _("_Cancel"), answer_1, response_1);
    else
        gtk_dialog_add_button (dialog, answer_1, response_1);

    if (g_strcmp0 (answer_2, "gtk-ok") == 0)
        eel_dialog_add_button (dialog, _("_OK"), answer_2, response_2);
    else if (g_strcmp0 (answer_2, "edit-clear") == 0)
        eel_dialog_add_button (dialog, _("_Clear"), answer_2, response_2);
    else
        gtk_dialog_add_button (dialog, answer_2, response_2);

    return dialog;
}
Ejemplo n.º 4
0
GtkDialog *
eel_create_info_dialog (const char *primary_text,
			const char *secondary_text,
			GtkWindow *parent)
{
	return create_message_dialog (primary_text, secondary_text,
				      GTK_MESSAGE_INFO,
				      GTK_BUTTONS_OK,
				      parent);
}
Ejemplo n.º 5
0
Archivo: cmUI.c Proyecto: entalent/SkyQ
void send_button_press(GtkWidget *widget,struct text_view_info *viewinfo){
    GtkTextIter start, end;

    gtk_text_buffer_get_start_iter(viewinfo->view2_buffer,&start);
    gtk_text_buffer_get_end_iter(viewinfo->view2_buffer,&end);

    char *buffer=gtk_text_buffer_get_text(viewinfo->view2_buffer,&start,&end,TRUE);//FALSE);/
    int len=strlen(buffer);

    if (len > 0){
        //print_msg(viewinfo,"我:\n",buffer);
        gtk_text_buffer_set_text(viewinfo->view2_buffer,"", -1);
	send_message_callback(buffer);
    }
    else create_message_dialog(GTK_MESSAGE_INFO,"The message is not allowed to be empty!");
}
Ejemplo n.º 6
0
static void
on_find_clicked (GtkButton *button,
                   Widgets *w)
{
  g_return_if_fail (GTK_IS_TEXT_VIEW(w->textview));
  g_return_if_fail (GTK_IS_ENTRY(w->entry));

  GtkTextBuffer *buffer;
  GtkTextIter    iter = {0,};
  GtkTextIter    start = {0,};
  GtkTextIter    end = {0,};
  gboolean       found = FALSE;
  const gchar   *find;
  gchar         *output;

  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(w->textview));

  /*
   *  Let's check whether there is something to search for.
   */
  if (0 == gtk_entry_get_text_length (GTK_ENTRY(w->entry)))
  {
    return;
  }

  find = gtk_entry_get_text (GTK_ENTRY(w->entry));
  gtk_text_buffer_get_start_iter (buffer, &iter);

  /*
   *  Will only find first match, if not looped over.
   *  TODO: Find every match, indicate if no match was found.
   */
  found = gtk_text_iter_forward_search (&iter, find, GTK_TEXT_SEARCH_TEXT_ONLY,
                                &start, &end, NULL);

  /*
   *  The start and end iterators may only be valid if
   *  gtk_text_iter_forward_search() returned successfully! Remember that you
   *  have no control ("opaque") over iterators whatsoever.
   */
  if (found)
  {
    output = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
    create_message_dialog(w, "Text found", output);
  }
}
Ejemplo n.º 7
0
/**
 * eel_create_question_dialog:
 * 
 * Create a dialog asking a question with at least two choices.
 * The caller needs to set up any necessary callbacks 
 * for the buttons. The dialog is not yet shown, so that the
 * caller can add additional buttons or make other visual changes
 * without causing flashiness.
 * @question: The text of the question.
 * @answer_0: The label of the leftmost button (index 0)
 * @answer_1: The label of the 2nd-to-leftmost button (index 1)
 * @parent: The parent window for this dialog.
 */
GtkDialog *
eel_create_question_dialog (const char *primary_text,
			    const char *secondary_text,
			    const char *answer_1,
			    int response_1,
			    const char *answer_2,
			    int response_2,
			    GtkWindow *parent)
{
	GtkDialog *dialog;
	
	dialog = create_message_dialog (primary_text,
					secondary_text,
					GTK_MESSAGE_QUESTION,
					GTK_BUTTONS_NONE,
					parent);
	gtk_dialog_add_buttons (dialog, answer_1, response_1, answer_2, response_2, NULL);
	return dialog;
}
Ejemplo n.º 8
0
static GtkDialog *
show_message_dialog (const char *primary_text,
		     const char *secondary_text,
		     GtkMessageType type,
		     GtkButtonsType buttons_type,
		     const char *details_text,
		     GtkWindow *parent)
{
	GtkDialog *dialog;

	dialog = create_message_dialog (primary_text, secondary_text, type, 
					buttons_type, parent);
	if (details_text != NULL) {
		eel_gtk_message_dialog_set_details_label (GTK_MESSAGE_DIALOG (dialog),
							  details_text);
	}
	gtk_widget_show (GTK_WIDGET (dialog));

	g_signal_connect (dialog, "response",
			  G_CALLBACK (gtk_widget_destroy), NULL);

	return dialog;
}