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); }
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); }
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 */ } }
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 ); }
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); } }
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 }
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)); } }
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); } }
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; }
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; }
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); } }
/* * 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); }
/* 텍스트 몇개를 텍스트 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)); }
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); }
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 ); }
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; }
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); }
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)); }
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); }
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), ""); }
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); }
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 }
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
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; }
/*-----------------------------------------------------------------------------------------------------------------------*/ 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); }
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; }
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)); }
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; }