Example #1
0
static void change_color(GtkText *gtktext, gint start, gint end, GdkColor *color)
{
  gchar *newtext;

  /* So we don't need spaces at the very end of the text */
  if ( end == gtk_text_get_length(GTK_TEXT(gtktext))+1 )
    end--;

  newtext = gtk_editable_get_chars(GTK_EDITABLE(gtktext), start, end);
    
  gtk_text_freeze(gtktext);
  gtk_signal_handler_block_by_func(GTK_OBJECT(gtktext),  
				   GTK_SIGNAL_FUNC(entry_insert_cb), NULL); 
	
  gtk_text_set_point(gtktext, start);
  gtk_text_forward_delete(gtktext, end-start);

  if (newtext && end-start > 0)
    gtk_text_insert(gtktext, NULL, color, NULL, newtext, end-start); 

  gtk_signal_handler_unblock_by_func(GTK_OBJECT(gtktext), 
				     GTK_SIGNAL_FUNC(entry_insert_cb), NULL); 
  gtk_text_thaw(gtktext);
  g_free(newtext);
}
Example #2
0
void on_load_ok_button_clicked(GtkButton *button, gpointer user_data)
{
	GtkWidget *load_select;
	FILE *infile;
	char *filename;
	char text[512];

	load_select = gtk_widget_get_ancestor(GTK_WIDGET(button),GTK_TYPE_FILE_SELECTION);
	filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(load_select));
	gtk_widget_hide(load_select);

	infile = fopen(filename,"r");
	if(infile == NULL) {
		fprintf(stderr,"IOL: can't open %s\n",filename);
		gtk_widget_destroy(load_select);
		return;
	}

	gtk_widget_destroy(load_select);

	gtk_text_freeze(script_text);

	/* since GTK+ (lamely) has no gtk_text_empty() or whatever,
	   so we have to revert to kludges :( */
	gtk_text_set_point(script_text,0);
	gtk_text_forward_delete(script_text,gtk_text_get_length(script_text));

	while(fgets(text,512,infile) != NULL)
		gtk_text_insert(script_text,script_font,NULL,NULL,text,strlen(text));

	fclose(infile);

	gtk_text_set_point(script_text,0);
	gtk_text_thaw(script_text);
}
Example #3
0
void on_iol_window_show(GtkWidget *widget, gpointer user_data)
{
	char *hdir;
	char string[] = { "input red green blue alpha;\n\n#put your program here\n\noutput red green blue alpha;\n" };
	script_text = GTK_TEXT(user_data);

	script_font = gdk_font_load("-*-courier-medium-r-normal-*-12-*-*-*-*-*-*-*");

	gtk_text_freeze(script_text);
	gtk_text_insert(script_text,script_font,NULL,NULL,string,strlen(string));
	gtk_text_thaw(script_text);

	stay_open = 0;

	hdir = getenv("IOL_SCRIPTS");
	if(hdir == NULL) {
		fprintf(stderr,"IOL: $IOL_SCRIPTS environment variable not set, checking $HOME...\n");
		hdir = getenv("HOME");
		if(hdir == NULL) {
			fprintf(stderr,"IOL: $HOME environment variable not set\n");
			strcpy(default_dir,"/usr");
		} else {
			strncpy(default_dir,hdir,256);
			strncat(default_dir,"/.cinepaint/iol/",256);
			fprintf(stderr,"IOL: using %s as the default directory for scripts\n",default_dir);
		}
	} else {
		strncpy(default_dir,hdir,256);
		strncat(default_dir,"/",256);	/* the file selection dialog needs
						   it to end with a "/" so that it
						   will know it's a directory we
						   want */
	}
}
Example #4
0
    static void wxGtkTextInsert(GtkWidget *text,
                                const wxTextAttr& attr,
                                const char *txt,
                                size_t len)
    {
        wxFont tmpFont;
        GdkFont *font;
        if (attr.HasFont())
        {
            tmpFont = attr.GetFont();

            // FIXME: if this crashes because tmpFont goes out of scope and the GdkFont is
            // deleted, then we need to call gdk_font_ref on font.
            // This is because attr.GetFont() now returns a temporary font since wxTextAttr
            // no longer stores a wxFont object, for efficiency.

            font = tmpFont.GetInternalFont();
        }
        else
            font  = NULL;

        GdkColor *colFg = attr.HasTextColour() ? attr.GetTextColour().GetColor()
                          : NULL;

        GdkColor *colBg = attr.HasBackgroundColour()
                          ? attr.GetBackgroundColour().GetColor()
                          : NULL;

        gtk_text_insert( GTK_TEXT(text), font, colFg, colBg, txt, len );
    }
Example #5
0
static void pattern_clist_sync_selection (void) {
  GSList *list;
  struct player_pattern *pp;

  if (current_row >= 0) {
    list = g_slist_nth (curplrs, current_row);
    pp = (struct player_pattern *) list->data;

    if (!GTK_WIDGET_REALIZED (comment_text))
      gtk_widget_realize (comment_text);
  
    gtk_text_freeze (GTK_TEXT (comment_text));
    gtk_text_set_point (GTK_TEXT (comment_text), 0);
    gtk_text_forward_delete (GTK_TEXT (comment_text),
                               gtk_text_get_length (GTK_TEXT (comment_text)));
    gtk_text_set_point (GTK_TEXT (comment_text), 0);
    if (pp->comment) {
      gtk_text_insert (GTK_TEXT (comment_text), NULL, NULL, NULL,
                                           pp->comment, strlen (pp->comment));
      gtk_text_set_point (GTK_TEXT (comment_text), 0);
    }
    gtk_text_set_editable (GTK_TEXT (comment_text), TRUE);
    gtk_text_thaw (GTK_TEXT (comment_text));

    gtk_entry_set_text (GTK_ENTRY (pattern_entry), 
                                             (pp->pattern)? pp->pattern : "");
    gtk_entry_set_editable (GTK_ENTRY (pattern_entry), TRUE);

    gtk_widget_set_sensitive (mode_buttons[PATTERN_MODE_STRING], TRUE);
    gtk_widget_set_sensitive (mode_buttons[PATTERN_MODE_SUBSTR], TRUE);
    gtk_widget_set_sensitive (mode_buttons[PATTERN_MODE_REGEXP], TRUE);

    gtk_toggle_button_set_active (
  			    GTK_TOGGLE_BUTTON (mode_buttons[pp->mode]), TRUE);

    gtk_widget_set_sensitive (delete_button, TRUE);
    gtk_widget_set_sensitive (up_button, TRUE);
    gtk_widget_set_sensitive (down_button, TRUE);
  }
  else {
    gtk_text_freeze (GTK_TEXT (comment_text));
    gtk_text_set_point (GTK_TEXT (comment_text), 0);
    gtk_text_forward_delete (GTK_TEXT (comment_text),
                               gtk_text_get_length (GTK_TEXT (comment_text)));
    gtk_text_set_editable (GTK_TEXT (comment_text), FALSE);
    gtk_text_thaw (GTK_TEXT (comment_text));

    gtk_entry_set_text (GTK_ENTRY (pattern_entry), "");
    gtk_entry_set_editable (GTK_ENTRY (pattern_entry), FALSE);

    gtk_widget_set_sensitive (mode_buttons[PATTERN_MODE_STRING], FALSE);
    gtk_widget_set_sensitive (mode_buttons[PATTERN_MODE_SUBSTR], FALSE);
    gtk_widget_set_sensitive (mode_buttons[PATTERN_MODE_REGEXP], FALSE);

    gtk_widget_set_sensitive (delete_button, FALSE);
    gtk_widget_set_sensitive (up_button, FALSE);
    gtk_widget_set_sensitive (down_button, FALSE);
  }
}
Example #6
0
void log_text_bold(GtkWidget *text, GdkFont *font, char *str)
{
#if defined(WAVE_USE_GTK2) && !defined(GTK_ENABLE_BROKEN)
gtk_text_buffer_insert_with_tags (GTK_TEXT_VIEW (text)->buffer, &GLOBALS->iter_logfile_c_2,
                                 str, -1, GLOBALS->bold_tag_logfile_c_2, GLOBALS->mono_tag_logfile_c_1, GLOBALS->size_tag_logfile_c_1, NULL);
#else
gtk_text_insert (GTK_TEXT (text), font, &text->style->fg[GTK_STATE_SELECTED], &text->style->bg[GTK_STATE_SELECTED], str, -1);
#endif
}
Example #7
0
void
showEvent(State *data, int type)
{
  if(data->count++ % 10 == 0) {
    char buf[300];
    sprintf(buf, "%s: %d %d\n", type == TIMER ? "timer" : "idle", data->index, data->count);
    gtk_text_insert(GTK_TEXT(textLog), NULL, NULL, NULL, buf, strlen(buf)); 
  }
}
Example #8
0
void ghack_menu_window_put_string(GtkWidget *menuWin, int attr,
                                  const char* text, gpointer data)
{
    GnomeLess *gless;
    MenuWinType isMenu;

    if (text == NULL)
        return;
    
    isMenu = (MenuWinType) GPOINTER_TO_INT
    	(gtk_object_get_data (GTK_OBJECT (menuWin), "isMenu"));

    if (isMenu == MenuText) {
      gless = GNOME_LESS (gtk_object_get_data (GTK_OBJECT (menuWin), "gless"));
      g_assert (gless != NULL);
      g_assert (gless->text != NULL);
      g_assert (GTK_IS_TEXT (gless->text));

      /* Don't bother with attributes yet */
      gtk_text_insert (GTK_TEXT (gless->text), NULL, NULL, NULL, text, -1);
      gtk_text_insert (GTK_TEXT (gless->text), NULL, NULL, NULL, "\n", -1);

    }

    else if (isMenu == MenuUnknown) {
      isMenu = MenuText;
      gtk_object_set_data (GTK_OBJECT (menuWin), "isMenu",
      			   GINT_TO_POINTER (isMenu));

      gtk_widget_set_usize (GTK_WIDGET (menuWin), 500, 400);
      gtk_window_set_policy (GTK_WINDOW (menuWin), TRUE, TRUE, FALSE);
    
      gless = GNOME_LESS (gnome_less_new ());
      g_assert (gless != NULL);
      gtk_object_set_data (GTK_OBJECT (menuWin), "gless", gless);
      gtk_widget_show (GTK_WIDGET (gless));

      gnome_less_show_string (gless, text);
      gtk_text_insert (GTK_TEXT (gless->text), NULL, NULL, NULL, "\n", -1);

      gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (menuWin)->vbox),
      			  GTK_WIDGET (gless), TRUE, TRUE, 0);
    }
}
Example #9
0
File: extra.c Project: erikg/GEMS
int
putmail (GtkWidget * widget)
{
    synopsis *s;
    GtkCTreeNode *n;
    GtkWidget *from, *subj, *date, *recipt, *body;
    char *shtuff;

    if (widget != NULL)
      {
	  n = gtk_ctree_node_nth (GTK_CTREE (widget),
				  (&(GTK_CTREE (widget)->clist))->focus_row);
	  s = (synopsis *) gtk_ctree_node_get_row_data (GTK_CTREE (widget),
							n);
	  if (s)
	      shtuff = (char *) db_read_body (s->id);
	  else
	    {
		printf ("synopsis for row %d is NULL!\n", (&(GTK_CTREE (widget)->clist))->focus_row);
		return FALSE;
	    }
      }
    else
      {
	  s = (synopsis *) malloc (sizeof (synopsis));
	  s->sender = strdup (" ");
	  s->subject = strdup (" ");
	  s->date = strdup (" ");
	  s->sender = strdup (" ");
	  shtuff = strdup (" ");
      }
    from = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry1");
    date = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry2");
    subj = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry3");
    recipt = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry4");
    body = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "text1");

    gtk_entry_set_text (GTK_ENTRY (from), s->sender);
    gtk_entry_set_text (GTK_ENTRY (subj), s->subject);
    gtk_entry_set_text (GTK_ENTRY (date), s->date);
    gtk_text_freeze (GTK_TEXT (body));
    gtk_text_set_point (GTK_TEXT (body), 0);
    gtk_text_forward_delete (GTK_TEXT (body),
			     gtk_text_get_length (GTK_TEXT (body)));
    gtk_text_insert (GTK_TEXT (body), NULL, NULL, NULL, shtuff, -1);
    gtk_text_thaw (GTK_TEXT (body));
    if (widget == NULL)
      {
	  free (s);
	  free (shtuff);
      }
    return TRUE;
}
Example #10
0
void
on_toolbar_reply_clicked (GtkButton * UNUSED(button), gpointer UNUSED(user_data))
{
    synopsis *s;
    GtkCTreeNode *n;
    GtkWidget *from, *subj, *date, *recipt, *body, *comp, *widget;
    char *shtuff, buf[1024];

    if ((widget = lookup_widget (gems, "mailbox")) == NULL)
	return;
    comp = create_compose ();
    from = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry1");
    /* to = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry5"); */
    date = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry2");
    subj = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry6");
    recipt = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry4");
    body = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "text2");

    n = gtk_ctree_node_nth (GTK_CTREE (widget),
	(&(GTK_CTREE (widget)->clist))->focus_row);
    s = (synopsis *) gtk_ctree_node_get_row_data (GTK_CTREE (widget), n);
    shtuff = replyify (s, (char *)db_read_body (s->id));

    gtk_entry_set_text (GTK_ENTRY (from), s->sender);
    /*
     * if(!strncasecmp("re: ", s->subject, 4)) 
     */
    if (tolower (s->subject[0]) == 'r' && tolower (s->subject[1]) == 'e'
	&& s->subject[2] == ':' && s->subject[3] == ' ')
	sprintf (buf, "%s", s->subject);
    else
	sprintf (buf, "Re: %s", s->subject);
    gtk_entry_set_text (GTK_ENTRY (subj), buf);
    gtk_entry_set_text (GTK_ENTRY (date), s->date);


    gtk_text_freeze (GTK_TEXT (body));
    gtk_text_set_point (GTK_TEXT (body), 0);
    gtk_text_forward_delete (GTK_TEXT (body),
	gtk_text_get_length (GTK_TEXT (body)));
    gtk_text_insert (GTK_TEXT (body), NULL, NULL, NULL, shtuff, -1);
    gtk_text_thaw (GTK_TEXT (body));
    if (widget == NULL)
    {
	free (s);
	free (shtuff);
    }
    gtk_text_set_editable (GTK_TEXT (body), TRUE);
    gtk_widget_show (comp);
    return;
}
Example #11
0
void
fill_page_from_note_data(note_data *note)
{
    gint  len;
    gchar *buff;
    
    if (note->title != NULL)
    {
        gtk_entry_set_text(GTK_ENTRY(sp->title_entry), note->title);
    }
    if (note->text != NULL)
    {
        len = strlen(note->text);
        gtk_text_insert(GTK_TEXT(sp->text_entry), NULL, NULL, NULL, note->text,
                        len);
        gtk_editable_set_position(GTK_EDITABLE(sp->text_entry), 0);
    }

    time_label_set_time(TIME_LABEL(sp->tlabel_expire), note->expire);
    time_label_set_time(TIME_LABEL(sp->tlabel_created), note->created);
    time_label_set_time(TIME_LABEL(sp->tlabel_changed), note->changed);

    buff = g_strdup_printf("%ld", note->changes);
    gtk_label_set_text(GTK_LABEL(sp->label_changes), buff);
    g_free(buff);
    
    if (note->id != NULL)
    {
        gtk_entry_set_text(GTK_ENTRY(sp->note_id_entry), note->id);
    }
    
    if (note->notetype == CheckNote || note->notetype == TodoNote)
    {
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sp->todo_check),
                                     note->todo);
    }
    if (note->notetype == TodoNote)
    {
        gnome_date_edit_set_time(GNOME_DATE_EDIT(sp->de_deadline), note->deadline);
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(sp->prio_entry), note->prio);

        gtk_signal_handler_block_by_func(
            GTK_OBJECT(sp->ad_complete), GTK_SIGNAL_FUNC(cb_complete_updates_done),
            sp->todo_check);
        gtk_adjustment_set_value(GTK_ADJUSTMENT(sp->ad_complete), note->complete);
        gtk_signal_handler_unblock_by_func(
            GTK_OBJECT(sp->ad_complete), GTK_SIGNAL_FUNC(cb_complete_updates_done),
            sp->todo_check);
    }
}
Example #12
0
/*
 * FindFunction
 *
 * Looks for the string in the notepad.
 */
void FindFunction (GtkWidget *widget, gpointer data)
{
    int nIndex;
    GtkWidget *text = GetTextWidget ();
    char *szHaystack;   

    /* --- Get the text from the widget --- */
    szHaystack = GetText ();

    /* --- Free up the old needle (text) --- */
    if (szNeedle) {
        g_free (szNeedle);
    }

    /* --- Get text to search for.  --- */
    szNeedle = gtk_editable_get_chars (
                 	GTK_EDITABLE (entry), 0, -1);

    /* --- Get cursor position --- */
    nIndex = GTK_EDITABLE (text)->selection_end_pos;

    /* --- Find the string --- */
    nIndex = LookForString (szHaystack, szNeedle, nIndex);

    if (nIndex >= 0) {

        /* --- Move the cursor to a position --- */
        gtk_text_set_point (GTK_TEXT (text), nIndex);

        /* --- These two lines will force the widget to --- */
        /*     scroll to the position where the text is. --- */
        gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL, " ", 1);
        gtk_text_backward_delete (GTK_TEXT (text), 1);

        /* --- Select the field found. --- */
        gtk_editable_select_region (GTK_EDITABLE (text), 
                                nIndex, nIndex + strlen (szNeedle));

        /* --- Allow it to be created again --- */
        dialog_window = NULL;
    } else {

        ShowMessage ("Find...", "Not found.  Reached the end of the file.");
    }

    /* --- Release memory. --- */
    g_free (szHaystack);
}
Example #13
0
/* 텍스트 몇개를 텍스트 widget에 더한다. - 아래 함수는 우리의 윈도가 realize 될
때 불리는 callback이다. gtk_widget_realize로 realize되도록 강제할 수도 있지만
그건 먼저 계층구조의 한 부분이 되어야 할 것이다.
*/
void
realize_text (GtkWidget *text, gpointer data)
{
    gtk_text_freeze (GTK_TEXT (text));
    gtk_text_insert (GTK_TEXT (text), NULL, &text->style->black, NULL,
    "From: [email protected]\n"
    "To: [email protected]\n"
    "Subject: Made it!\n"
    "\n"
    "We just got in this morning. The weather has been\n"
    "great - clear but cold, and there are lots of fun sights.\n"
    "Sojourner says hi. See you soon.\n"
    " -Path\n", -1);
   
    gtk_text_thaw (GTK_TEXT (text));
}
Example #14
0
void gtkspell_uncheck_all(GtkText *gtktext) {
	int origpos;
	char *text;
	float adj_value;

	adj_value = gtktext->vadj->value;
	gtk_text_freeze(gtktext);
	origpos = gtk_editable_get_position(GTK_EDITABLE(gtktext));
	text = gtk_editable_get_chars(GTK_EDITABLE(gtktext), 0, -1);
	gtk_text_set_point(gtktext, 0);
	gtk_text_forward_delete(gtktext, gtk_text_get_length(gtktext));
	gtk_text_insert(gtktext, NULL, NULL, NULL, text, strlen(text));
	gtk_text_thaw(gtktext);

	gtk_editable_set_position(GTK_EDITABLE(gtktext), origpos);
	gtk_adjustment_set_value(gtktext->vadj, adj_value);
}
Example #15
0
static void wxGtkTextInsert(GtkWidget *text,
                            const wxTextAttr& attr,
                            const char *txt,
                            size_t len)
{
    GdkFont *font = attr.HasFont() ? attr.GetFont().GetInternalFont()
                                   : NULL;

    GdkColor *colFg = attr.HasTextColour() ? attr.GetTextColour().GetColor()
                                           : NULL;

    GdkColor *colBg = attr.HasBackgroundColour()
                        ? attr.GetBackgroundColour().GetColor()
                        : NULL;

    gtk_text_insert( GTK_TEXT(text), font, colFg, colBg, txt, len );
}
Example #16
0
File: srv-prop.c Project: IR4T4/xqf
static GtkWidget *server_comment_page (struct server *s) {
	GtkWidget *page_vbox;
	GtkWidget *scrollwin;
	struct server_props *props;
	int sucks = 0;
	char* comment = NULL;

	props = properties (s);
	if (props) {
		sucks = props->sucks;
		comment = props->comment;
	}

	page_vbox = gtk_vbox_new (FALSE, 4);
	gtk_container_set_border_width (GTK_CONTAINER (page_vbox), 8);

	sucks_check_button = gtk_check_button_new_with_label (_("This server sucks"));
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sucks_check_button), sucks);
	gtk_box_pack_start (GTK_BOX (page_vbox), sucks_check_button, FALSE, FALSE, 0);
	gtk_widget_show (sucks_check_button);

	scrollwin = gtk_scrolled_window_new(NULL, NULL);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
	gtk_box_pack_start (GTK_BOX (page_vbox), scrollwin, TRUE, TRUE, 0);

	comment_text = gtk_text_new (NULL, NULL);
	//  gtk_widget_set_usize (comment_text, -1, 80);
	gtk_container_add (GTK_CONTAINER (scrollwin), comment_text);
	gtk_widget_show (comment_text);

	gtk_text_freeze (GTK_TEXT (comment_text));
	if (comment) {
		gtk_text_insert (GTK_TEXT (comment_text), NULL, NULL, NULL,
				comment, strlen (comment));
		gtk_text_set_point (GTK_TEXT (comment_text), 0);
	}
	gtk_text_set_editable (GTK_TEXT (comment_text), TRUE);
	gtk_text_thaw (GTK_TEXT (comment_text));

	gtk_widget_show (scrollwin);

	gtk_widget_show (page_vbox);

	return page_vbox;
}
Example #17
0
static void change_color(GtkText *gtktext, 
		int start, int end, GdkColor *color) {
	char *newtext = gtk_editable_get_chars(GTK_EDITABLE(gtktext), start, end);
	gtk_text_freeze(gtktext);
	gtk_signal_handler_block_by_func(GTK_OBJECT(gtktext), 
			GTK_SIGNAL_FUNC(entry_insert_cb), NULL);
	
	gtk_text_set_point(gtktext, start);
	gtk_text_forward_delete(gtktext, end-start);

	if (newtext && end-start > 0)
		gtk_text_insert(gtktext, NULL, color, NULL, newtext, end-start);

	gtk_signal_handler_unblock_by_func(GTK_OBJECT(gtktext), 
			GTK_SIGNAL_FUNC(entry_insert_cb), NULL);
	gtk_text_thaw(gtktext);
	g_free(newtext);
}
Example #18
0
static void replace_word(GtkWidget *w, gpointer d) {
	int start, end;
	char *newword;
	char buf[BUFSIZE];

	/* we don't save their position, 
	 * because the cursor is moved by the click. */

	gtk_text_freeze(GTK_TEXT(d));

	gtk_label_get(GTK_LABEL(GTK_BIN(w)->child), &newword);
	get_curword(GTK_TEXT(d), buf, &start, &end);

	gtk_text_set_point(GTK_TEXT(d), end);
	gtk_text_backward_delete(GTK_TEXT(d), end-start);
	gtk_text_insert(GTK_TEXT(d), NULL, NULL, NULL, newword, strlen(newword));

	gtk_text_thaw(GTK_TEXT(d));
}
Example #19
0
static void
set_text_buffer(GtkWidget *widget, const char *text)
{
	GtkText *buffer;

	g_return_if_fail(widget);
	g_return_if_fail(text);

	buffer = GTK_TEXT(widget);
	g_return_if_fail(buffer);

	gtk_text_freeze(buffer);
	gtk_text_set_point(buffer, 0);
	gtk_text_forward_delete(buffer, gtk_text_get_length(buffer));
	gtk_text_set_point(buffer, 0);
	gtk_text_insert(buffer, NULL, NULL, NULL,
		lazy_utf8_to_ui_string(text), (-1));
	gtk_text_thaw(buffer);
}
Example #20
0
static void send_msg_all(GtkButton *button, gpointer user_data) {
  GtkWidget *mw, *entry;
  Send s;
  char *buf;

  mw = (GtkWidget *)user_data;
  entry = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(mw), "entry");
  s.fd = serv_sock;
  buf = gtk_editable_get_chars(GTK_EDITABLE(entry), 0, -1);
  s.buf = g_strconcat(buf, CRLF, NULL);
  s.buf_len = strlen(s.buf);
  s.tit = "chat server: ";
  s.tit_len = strlen(s.tit);
  g_hash_table_foreach(hash, send_data, &s);
  s.buf[s.buf_len - 2] = '\n';
  gtk_text_insert(GTK_TEXT(all_in_all), NULL, NULL, NULL, s.buf, s.buf_len - 1);
  g_free(s.buf);
  g_free(buf);
  gtk_entry_set_text(GTK_ENTRY(entry), "");
}
Example #21
0
static void entry_insert_cb(GtkText *gtktext, gchar *newtext, guint len, guint *ppos, gpointer d)
{
  gint origpos;

  gtk_signal_handler_block_by_func(GTK_OBJECT(gtktext),
				   GTK_SIGNAL_FUNC(entry_insert_cb), 
				   NULL );
  
  gtk_text_insert(GTK_TEXT(gtktext), NULL,
		  &(GTK_WIDGET(gtktext)->style->fg[0]), NULL, newtext, len);

  gtk_signal_handler_unblock_by_func(GTK_OBJECT(gtktext),
				     GTK_SIGNAL_FUNC(entry_insert_cb),
				     NULL);
  
  gtk_signal_emit_stop_by_name(GTK_OBJECT(gtktext), "insert-text");
  *ppos += len;

  origpos = gtk_editable_get_position(GTK_EDITABLE(gtktext));

  if (iswordsep(newtext[0])) 
    {
      /* did we just end a word? */
      if (*ppos >= 2) check_at(gtktext, *ppos-2);
      
      /* did we just split a word? */
      if (*ppos < gtk_text_get_length(gtktext))
	check_at(gtktext, *ppos+1);
    } 
  else 
    {
      /* check as they type, *except* if they're typing at the end (the most
       * common case.
       */
      if (*ppos < gtk_text_get_length(gtktext) && !iswordsep(GTK_TEXT_INDEX(gtktext, *ppos)))
	check_at(gtktext, *ppos-1);
    }

  gtk_editable_set_position(GTK_EDITABLE(gtktext), origpos);
  gtk_editable_select_region(GTK_EDITABLE(gtktext), origpos, origpos);
}
Example #22
0
static void
html_output_print(struct html_output *output, const struct array *text)
{
	struct html_context *ctx;
   
	if (text->size <= 0)
		return;

	ctx = html_output_get_udata(output);
	if (ctx->title) {
		str_cat_len(ctx->title, text->data, text->size);
		return;
	}
#if GTK_CHECK_VERSION(2,0,0)
	{
		GtkTextBuffer *buffer;
		GtkTextIter iter;

		buffer = gtk_text_view_get_buffer(ctx->html_view->widget);
		gtk_text_buffer_get_end_iter(buffer, &iter);
		gtk_text_buffer_insert(buffer, &iter, text->data, text->size);
	}
#else
	{
		struct array str;
		gchar *to_free;

		if (locale_is_utf8()) {
			str = array_init(text->data, text->size);
			to_free = NULL;
		} else {
			to_free = h_strndup(text->data, text->size);
			str = array_from_string(lazy_utf8_to_ui_string(to_free));
		}
		gtk_text_insert(ctx->html_view->widget,
			NULL, NULL, NULL, str.data, str.size);
		HFREE_NULL(to_free);
	}
#endif
}
Example #23
0
void SendData (int istype, char *ssenddata)
{
  if (istype == 1)
  {
    sprintf (sendline, "%s\n", ssenddata);
  }
  else
  {
    sprintf (sendline, "%s\n", gtk_entry_get_text (GTK_ENTRY (internetentry)));
    gtk_entry_set_text (GTK_ENTRY (internetentry), "");
  }
  n = strlen (sendline);
  if (send (sockfd, sendline, n, 0) != n)
  {
    Message ("A send error has occured.", 3, 0);
  }
  gtk_text_freeze (GTK_TEXT (text));
  gtk_text_insert (GTK_TEXT (text), fixed_font, &color, NULL,
    sendline, -1);
  gtk_text_thaw (GTK_TEXT (text));
  gtk_adjustment_set_value (adj, adj->upper - adj->lower - adj->page_size);
}
static gboolean
script_fu_siod_read (GIOChannel  *channel,
		     GIOCondition cond,
		     gpointer     data)
{
  int count;
  static int hack = 0;
  GIOError error;

  count = 0;
  error = g_io_channel_read (channel, read_buffer, BUFSIZE - 1, &count);

  if (error == G_IO_ERROR_NONE)
    {
#ifndef G_OS_WIN32
      /* Is this needed any longer on Unix? */
      if (!hack) /* this is a stupid hack, but as of 10/27/98
		 * the script-fu-console will hang on my system without it.
		 * the real cause of this needs to be tracked down.
		 * posibly a problem with the text widget, or the
		 * signal handlers not getting fully initialized or...
		 * no reports of hangs on other platforms, could just be a
		 * problem with my system.
		 */
      {
	hack = 1;
	return TRUE;
      }
#endif
      read_buffer[count] = '\0';
      gtk_text_freeze (GTK_TEXT (cint.console));
      gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
		       read_buffer, -1);
      gtk_text_thaw (GTK_TEXT (cint.console));

      script_fu_console_scroll_end (NULL);
    }
  return TRUE;
}
PRIVATE void insertStringToText_NoConv(const gchar *pWidgetName, const gchar *pString)
{
/*** Parameters start ***/
	GtkWidget	*widget = NULL;		// Temporary pointer to widget.
#ifndef USE_GTK12
	GtkTextBuffer *buffer = NULL;
	GtkTextIter start, end;
#endif
/*** Parameters end ***/
	
	widget = lookupWidget(pWidgetName);
#ifdef USE_GTK12
	gtk_text_insert(GTK_TEXT(widget), NULL, NULL, NULL, pString, -1);
#else	/* for GTK2 */
	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));
	gtk_text_buffer_get_start_iter(buffer, &start);
	gtk_text_buffer_get_end_iter(buffer, &end);
	if( pString != NULL )
	gtk_text_buffer_insert(buffer, &end, pString, -1);
#endif

	return;
}// End insertStringToText_NoConv
Example #26
0
void nk_load_file(NKEdit *doc, gchar *filename)
{
  FILE *infile;
  gchar buffer[READ_BUFFER_SIZE];
  gint nchars;

#ifdef NK_DEBUG
#  printf("nk_load_file\n");
#endif

  if((infile = fopen(filename, "r")) == NULL) {
    fclose(infile);
    return;
  }
  nk_text_clean(NULL, doc);

  gtk_widget_realize(doc->text);
  gtk_text_freeze(GTK_TEXT(doc->text));

  while (1) {
    nchars = fread(buffer, 1, READ_BUFFER_SIZE, infile);
    gtk_text_insert(GTK_TEXT(doc->text), NULL, NULL, NULL, buffer, nchars);

    if (nchars < READ_BUFFER_SIZE) break;
  }
  fclose(infile);

  gtk_text_set_point(GTK_TEXT(doc->text), 0);

  gtk_text_thaw(GTK_TEXT(doc->text));
  g_snprintf(doc->filename, sizeof(doc->filename),filename);

  check_write_mode(doc, TRUE);

  return;
}
Example #27
0
/*-----------------------------------------------------------------------------------------------------------------------*/
void *AcquireData(gpointer Data)                                    //Data acquisition thread triggered by StartCallBack
{
gulong Curr[4],Prev[4];
gint Overflow[4];
gdouble Rate[4];
gint i,Period;
FILE *Fp;
struct timeval Tv;
gdouble StartTime,ElapsedTime,Delta,TimeNow,TimePrev;
time_t DateTime;
gchar Str[120];

if (InitCamac()) { SAttention("Could not initialise CAMAC\nCheck if crate is on"); AcqOn=FALSE; pthread_exit(NULL); }
if (!(Fp=fopen(RunName,"w"))) 
   { SAttention("Could not open output file\nCheck disk full, file permissions"); AcqOn=FALSE; pthread_exit(NULL); }
CamacZ(); Period=0; for (i=0;i<NScalers;++i) { Prev[i]=0; Overflow[i]=0; }
gettimeofday(&Tv,NULL); StartTime=(gdouble)Tv.tv_sec+(gdouble)Tv.tv_usec*1.0e-06;
TimePrev=StartTime; DateTime=time(NULL);
sprintf(Str,"%s Started:%s",RunName,ctime(&DateTime));
gdk_threads_enter(); gtk_label_set_text(GTK_LABEL(S_Start),Str); gdk_threads_leave();
fprintf(Fp,"%s Started:%s",RunName,ctime(&DateTime));
fprintf(Fp," Elapsed     Scaler1       Rate1     Scaler2       Rate2     Scaler3       Rate3     Scaler4       Rate4\n");
while (TRUE) 
   {
   while (TRUE)
      {
      gettimeofday(&Tv,NULL); TimeNow=(gdouble)Tv.tv_sec+(gdouble)Tv.tv_usec*1.0e-06;
      Delta=TimeNow-TimePrev;
      if (Delta >= (gdouble)Interval[Period]) { TimePrev=TimeNow; break; }
      if (StopSignal) break;
      }
   for (i=0;i<NScalers;++i) 
       { 
       CamacNAF(StnNo,SubA[i],0); Curr[i]=DataRead()+Overflow[i]*SCALER_OVERFLOW; 
       if (Curr[i]<Prev[i]) { ++Overflow[i]; Curr[i]+=SCALER_OVERFLOW; }
       if (Delta>0.0) Rate[i]=(Curr[i]-Prev[i])/Delta; Prev[i]=Curr[i];
       }
   ElapsedTime=TimeNow-StartTime;
   if (ElapsedTime>(gdouble)Duration[0]) Period=1;
   if (ElapsedTime>(gdouble)(Duration[0]+Duration[1])) Period=2;
   sprintf(Str,"%08.2f",ElapsedTime); 
   gdk_threads_enter(); gtk_text_insert(GTK_TEXT(S_Output),NULL,NULL,NULL,Str,-1); gdk_threads_leave();
   fprintf(Fp,"%8.2f",ElapsedTime);
   for (i=0;i<NScalers;++i) 
       {
       sprintf(Str,"       %010ld  %010.2f",Curr[i],Rate[i]);
       gdk_threads_enter(); gtk_text_insert(GTK_TEXT(S_Output),NULL,NULL,NULL,Str,-1); gdk_threads_leave();
       }
   for (i=0;i<NScalers;++i) fprintf(Fp,"  %10ld  %10.2f",Curr[i],Rate[i]);
   gdk_threads_enter(); gtk_text_insert(GTK_TEXT(S_Output),NULL,NULL,NULL,"\n",-1); gdk_threads_leave();
   fprintf(Fp,"\n");
   if (StopSignal) break;
   }
DateTime=time(NULL);
sprintf(Str,"%s Stopped:%s",RunName,ctime(&DateTime)); 
gdk_threads_enter(); 
gtk_text_insert(GTK_TEXT(S_Output),NULL,NULL,NULL,"--------------------------------------------------------------------------------------------------------------------------------------------------------\n",-1);
gtk_label_set_text(GTK_LABEL(S_Stop),Str); gdk_threads_leave();
fprintf(Fp,"%s Stopped:%s",RunName,ctime(&DateTime));
AcqOn=FALSE; FinishCamac(); fclose(Fp); pthread_exit(NULL);
}
Example #28
0
static void 
sfe_ui_TreeSelectionChanged( GtkWidget *tree )
    {
    GList *itemlist;
    gchar *name;
    GtkBox *hbox;
    GtkLabel *label;
    GtkWidget *item;
    pStructInf infptr, subinf;
    gchar* annotation;
    int i;
    gchar* rowtext[2];
    gchar intbuf[32];
    char* strval;
    int intval;

	/** Get the hidden label which contains the pointer to the inf **/
	if (!tree) return;
	itemlist = GTK_TREE_SELECTION(tree);
	if (!itemlist) return;
	item = GTK_WIDGET (itemlist->data);
	if (!item) return;
	hbox = GTK_BOX (GTK_BIN (item)->child);
	label = GTK_LABEL (((GtkBoxChild*)(hbox->children->next->next->data))->widget);
	gtk_label_get (label, &name);
	infptr = (pStructInf)(strtol(name, NULL, 16));
	if (!infptr) return;

	/** Show the info on the right side of the window **/
	gtk_entry_set_text(GTK_ENTRY(SFE_Globals.NameEdit), infptr->Name);
	gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(SFE_Globals.TypeCombo)->entry), infptr->UsrType);
	gtk_text_set_point(GTK_TEXT(SFE_Globals.AnnotText), 0);
	gtk_text_forward_delete(GTK_TEXT(SFE_Globals.AnnotText), gtk_text_get_length(GTK_TEXT(SFE_Globals.AnnotText)));
	annotation="";
	stAttrValue(stLookup(infptr,"annotation"), NULL, &annotation, 0);
	gtk_text_insert(GTK_TEXT(SFE_Globals.AnnotText), NULL, NULL, NULL, annotation, strlen(annotation));

	/** Build the attributes listing **/
	gtk_clist_clear(GTK_CLIST(SFE_Globals.AttrsCList));
	for(i=0;i<infptr->nSubInf;i++)
	    {
	    subinf = infptr->SubInf[i];
	    if (stStructType(subinf) == ST_T_ATTRIB)
		{
		strval = NULL;
		stAttrValue(subinf, &intval, &strval, 0);
		rowtext[0] = subinf->Name;
		if (strval)
		    {
		    rowtext[1] = strval;
		    }
		else
		    {
		    snprintf(intbuf, 32, "%d", intval);
		    rowtext[1] = intbuf;
		    }
		gtk_clist_append(GTK_CLIST(SFE_Globals.AttrsCList), rowtext);
		}
	    }

    return;
    }
Example #29
0
void
selection_received (GtkWidget *widget, GtkSelectionData *data)
{
  int position;
  int i;
  SelType seltype;
  char *str;
  
  if (data->length < 0)
    {
      g_print("Error retrieving selection\n");
      return;
    }

  seltype = SEL_TYPE_NONE;
  for (i=0; i<LAST_SEL_TYPE; i++)
    {
      if (seltypes[i] == data->type)
	{
	  seltype = i;
	  break;
	}
    }

  if (seltype == SEL_TYPE_NONE)
    {
      char *name = gdk_atom_name (data->type);
      g_print("Don't know how to handle type: %s\n",
	      name?name:"<unknown>");
      return;
    }

  if (selection_string != NULL)
    g_string_free (selection_string, TRUE);

  selection_string = g_string_new (NULL);

  gtk_text_freeze (GTK_TEXT (selection_text));
  gtk_text_set_point (GTK_TEXT (selection_text), 0);
  gtk_text_forward_delete (GTK_TEXT (selection_text), 
			   gtk_text_get_length (GTK_TEXT (selection_text)));

  position = 0;
  while (position < data->length)
    {
      switch (seltype)
	{
	case ATOM:
	  str = stringify_atom (data->data, &position);
	  break;
	case COMPOUND_TEXT:
	case STRING:
	case TEXT:
	  str = stringify_text (data->data, &position);
	  break;
	case BITMAP:
	case DRAWABLE:
	case PIXMAP:
	case WINDOW:
	case COLORMAP:
	  str = stringify_xid (data->data, &position);
	  break;
	case INTEGER:
	case PIXEL:
	  str = stringify_integer (data->data, &position);
	  break;
	case SPAN:
	  str = stringify_span (data->data, &position);
	  break;
	default:
	  {
	    char *name = gdk_atom_name (data->type);
	    g_print("Can't convert type %s to string\n",
		    name?name:"<unknown>");
	    position = data->length;
	    continue;
	  }
	}
      gtk_text_insert (GTK_TEXT (selection_text), NULL, 
		       &selection_text->style->black, 
		       NULL, str, -1);
      gtk_text_insert (GTK_TEXT (selection_text), NULL, 
		       &selection_text->style->black, 
		       NULL, "\n", -1);
      g_string_append (selection_string, str);
      g_free (str);
    }
  gtk_text_thaw (GTK_TEXT (selection_text));
}
Example #30
0
gint display_about_dbox()
{
  GtkWidget *dbox;
  gpointer user_data;
  FILE *fd;
  gchar buffer[MAXCHARS];
  GdkFont *fixed_font;
  GtkWidget *text;
  gchar tempstr[MAXCHARS];

  dbox = create_about_dbox();
  
  /* Set text */
  user_data = gtk_object_get_data(GTK_OBJECT(dbox), "text1");
  text = GTK_WIDGET(user_data);
  gtk_text_freeze(GTK_TEXT (text));
  gtk_editable_delete_text(GTK_EDITABLE(text), 0, -1);

  strcpy(buffer, inst_paths.base_dir);  // retrieve base path
  strcat(buffer, SHARE_DIR);          //
  strcat(buffer, DIR_SEPARATOR);
#if defined(__LINUX__)
  strcat(buffer, "COPYING");
#elif defined(__WIN32__)
  strcat(buffer, "Copying.txt");
#endif

  if(access(buffer, F_OK) == 0 )
    {
#if defined(__LINUX__)
      fixed_font = gdk_font_load ("-misc-clean-medium-r-*-*-*-140-*-*-*-*-*-*");
#elif defined(__WIN32__)
      fixed_font = gdk_font_load ("-adobe-courier-medium-r-normal--12-120-75-75-p-70-iso8859-1");
#endif
      if( (fd=fopen (buffer, "r")) != NULL)
	{
	  memset (buffer, 0, sizeof(buffer));
	  while(fread (buffer, 1, sizeof(buffer)-1, fd))
            {
	      process_buffer(buffer);
              gtk_text_insert (GTK_TEXT (text), fixed_font, NULL, NULL, buffer, strlen (buffer));
              memset (buffer, 0, sizeof(buffer));
            }
	  fclose (fd);
	}
    }
  gtk_text_thaw(GTK_TEXT (text));

  /* Set label */
  user_data = gtk_object_get_data(GTK_OBJECT(dbox), "label5");
#ifdef HAVE_LIBTIFFEP
  g_snprintf(tempstr, sizeof(tempstr), 
	     "* TILP version %s (cable=%s, tiffep=%s)", 
	     GTKTIEMU_VERSION,
	     ticable_get_version(),
	     tiffep_get_version());
#else
  g_snprintf(tempstr, sizeof(tempstr),
	     "* TILP version %s (%s %s)", 
	     GTKTIEMU_VERSION,
	     ticable_get_version(),
	     "NA");
#endif
  gtk_label_set_text(GTK_LABEL(user_data), tempstr);

  /* Set pixmap */
  user_data = gtk_object_get_data(GTK_OBJECT(dbox), "pixmap2");
  #if 0
  /* buggy code -- avoid segfault ... */
  GtkWidget *tmp_pixmapwid = GTK_WIDGET(user_data);
  GdkPixmap *pixmap;
  GdkBitmap *mask;
  GtkStyle *style;
  FILE *f;
  gchar buffer[MAXCHARS];

  return;

  /* Create the base filename */
  strcpy(buffer, inst_paths.base_dir);  // retrieve base path
  strcat(buffer, SHARE_DIR);          //
  strcat(buffer, DIR_SEPARATOR);
#if defined(__LINUX__)
  strcat(buffer, "logo.jpg");
#elif defined(__WIN32__)
  strcat(buffer, "logo.jpg");
#endif
  DISPLAY("logo: <%s>\n", buffer);
  /* Try to access the file */
  if(access(buffer, F_OK) == 0 )
    {
      /* Open and load file */
      f = fopen(buffer, "rb");
      if(f == NULL)
	g_error("Unable to open the logo (logo.jpg).\n");
      img.depth = 3; // > 2 colors
      read_jpg_format(f, &img);
      fclose(f);

      convert_bytemap_to_pixmap(&img);

      style = gtk_widget_get_style(widget);
      pixmap = gdk_pixmap_create_from_xpm_d(widget->window, &mask,
					    &style->bg[GTK_STATE_NORMAL],
					    (gchar **)(img.pixmap));
      gtk_pixmap_set(GTK_PIXMAP(tmp_pixmapwid), pixmap, mask);      
    }
  else 
    g_warning("Unable to open the logo (logo.jpg).\n");
#endif

  gtk_widget_show_all(dbox);
  return 0;
}