Example #1
0
static void treeViewSelChanged(GtkTreeView* treeView, gpointer userData)
{
	GtkTreePath* path = NULL;
	GtkTreeViewColumn* col = NULL;

	gtk_tree_view_get_cursor(treeView, &path, &col);

	GtkTreeIter iter;
	gtk_tree_model_get_iter(GTK_TREE_MODEL(treeModel), &iter, path);

	vmime::component* comp = NULL;
	gtk_tree_model_get(GTK_TREE_MODEL(treeModel), &iter, 1, &comp, -1);

	GtkTextBuffer* textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textArea));
	GtkTextIter start, end;

	gtk_text_buffer_get_iter_at_offset(textBuffer, &start, comp->getParsedOffset());
	gtk_text_buffer_get_iter_at_offset(textBuffer, &end, comp->getParsedOffset() + comp->getParsedLength());

	gtk_text_buffer_select_range(textBuffer, &start, &end);

	gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textArea), &start, 0.0, FALSE, 0.0, 0.0);

	gtk_tree_path_free(path);
}
Example #2
0
static void stick_to_end(GtkTextView *v){
	GtkTextBuffer *b;
	GtkTextIter iter;
	b=gtk_text_view_get_buffer(v);
	gtk_text_buffer_get_end_iter(b,&iter);
	gtk_text_view_scroll_to_iter(v,&iter,0,FALSE,1.0,0);
}
Example #3
0
static G_GNUC_PRINTF(3, 4) void appendf(struct log_s *log, const char *colname,
		    const char *fmt, ...) {
  va_list args;
  va_start( args, fmt );
  char *buf = g_strdup_vprintf(fmt, args);
  va_end( args );

  printf("%s", buf);

  GtkTextTag *tag = NULL;
  if(colname)
    tag = gtk_text_buffer_create_tag(log->buffer, NULL,
				     "foreground", colname,
				     NULL);

  GtkTextIter end;
  gtk_text_buffer_get_end_iter(log->buffer, &end);
  if(tag)
    gtk_text_buffer_insert_with_tags(log->buffer, &end, buf, -1, tag, NULL);
  else
    gtk_text_buffer_insert(log->buffer, &end, buf, -1);

  g_free(buf);

  gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(log->view),
			       &end, 0.0, FALSE, 0, 0);

  while(gtk_events_pending())
    gtk_main_iteration();
}
Example #4
0
void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view){
	GtkWidget *main_window=linphone_gtk_get_main_window ();
	LinphoneChatRoom *cr2=(LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view),"cr");
	const LinphoneAddress *from=linphone_chat_room_get_peer_address(cr2);
	char *from_str=linphone_address_as_string_uri_only(from);
	char *uri_str=linphone_address_as_string(uri);
	char *uri_only=linphone_address_as_string_uri_only(uri);
	MSList *messages=NULL;

	if(g_strcmp0(from_str,uri_only)!=0){
		GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview"));
		GtkTextIter start;
		GtkTextIter end;
		GtkTextBuffer *text_buffer;

		text_buffer=gtk_text_view_get_buffer(text_view);
		gtk_text_buffer_get_bounds(text_buffer, &start, &end);
		gtk_text_buffer_delete (text_buffer, &start, &end);
		g_object_set_data(G_OBJECT(chat_view),"cr",cr);
		g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view);
		messages=linphone_chat_room_get_history(cr,NB_MSG_HIST);
		g_object_set_data(G_OBJECT(chat_view),"from_message",g_strdup(uri_str));
		display_history_message(chat_view,messages,uri);
		gtk_text_buffer_get_end_iter(text_buffer,&end);
		gtk_text_view_scroll_to_iter(text_view,&end,0,FALSE,1.0,0);
	}
	ms_free(from_str);
	ms_free(uri_str);
	ms_free(uri_only);
}
Example #5
0
static void
search_text_changed (GtkEntry *entry)
{
  ExampleAppWindow *win;
  ExampleAppWindowPrivate *priv;
  const gchar *text;
  GtkWidget *tab;
  GtkWidget *view;
  GtkTextBuffer *buffer;
  GtkTextIter start, match_start, match_end;

  text = gtk_entry_get_text (entry);

  if (text[0] == '\0')
    return;

  win = EXAMPLE_APP_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (entry)));
  priv = example_app_window_get_instance_private (win);

  tab = gtk_stack_get_visible_child (GTK_STACK (priv->stack));
  view = gtk_bin_get_child (GTK_BIN (tab));
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));

  /* Very simple-minded search implementation */
  gtk_text_buffer_get_start_iter (buffer, &start);
  if (gtk_text_iter_forward_search (&start, text, GTK_TEXT_SEARCH_CASE_INSENSITIVE,
                                    &match_start, &match_end, NULL))
    {
      gtk_text_buffer_select_range (buffer, &match_start, &match_end);
      gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (view), &match_start,
                                    0.0, FALSE, 0.0, 0.0);
    }
}
Example #6
0
void scroll_mainview_down(){
	GtkTextIter iter;
	GdkRectangle rect;
	gint distance;
	gint i;

	LOG(LOG_DEBUG, "IN : scroll_mainview_down()");


	gtk_text_view_get_visible_rect(GTK_TEXT_VIEW(main_view), &rect);

	distance = rect.height - scroll_margin;

	if(bsmooth_scroll == TRUE){
		for(i=0 ; i < scroll_step; i ++){
			gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(main_view),
							   &iter,
							   rect.x,
							   rect.y+ (distance / scroll_step)*(i+1));

			gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(main_view),
						     &iter,
						     0.0,
						     TRUE,
						     0.0, 0.0);
#ifdef __WIN32__
			Sleep(scroll_time / scroll_step / 1000);
#else
			usleep(scroll_time / scroll_step);
#endif
		}
	} else {
		gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(main_view),
						   &iter,
						   rect.x,
						   rect.y+ distance);

		gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(main_view),
					     &iter,
					     0.0,
					     TRUE,
					     0.0, 0.0);
	}

	LOG(LOG_DEBUG, "OUT : scroll_mainview_down()");

}
Example #7
0
void
text_scroll_to_bottom(squidge_t *squidge)
{
	GtkTextIter iter;

	gtk_text_buffer_get_end_iter(squidge->ui.text_buffer, &iter);
	gtk_text_view_scroll_to_iter(squidge->ui.log_textview, &iter, 0.0, FALSE, 0, 0);
}
Example #8
0
static void help_window_load_text(GtkWidget *text, const gchar *path)
{
	gchar *pathl;
	FILE *f;
	gchar s_buf[1024];
	GtkTextBuffer *buffer;
	GtkTextIter iter;
	GtkTextIter start, end;

	if (!text || !path) return;

	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));

	gtk_text_buffer_get_bounds(buffer, &start, &end);
	gtk_text_buffer_delete(buffer, &start, &end);

	gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);

	pathl = path_from_utf8(path);
	f = fopen(pathl, "r");
	g_free(pathl);
	if (!f)
		{
		gchar *buf;
		buf = g_strdup_printf(_("Unable to load:\n%s"), path);
		gtk_text_buffer_insert(buffer, &iter, buf, -1);
		g_free(buf);
		}
	else
		{
		while (fgets(s_buf, sizeof(s_buf), f))
			{
			gchar *buf;
			gint l;

			l = strlen(s_buf);

			if (!g_utf8_validate(s_buf, l, NULL))
				{
				buf = g_locale_to_utf8(s_buf, l, NULL, NULL, NULL);
				if (!buf) buf = g_strdup("\n");
				}
			else
				{
				buf = NULL;
				}
			gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
								 (buf) ? buf : s_buf, -1,
								 "monospace", NULL);
			g_free(buf);
			}
		fclose(f);
		}

	gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
	gtk_text_buffer_place_cursor(buffer, &iter);
	gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(text), &iter, 0.0, TRUE, 0, 0);
}
Example #9
0
void message (string message)
{
  gtk_text_buffer_insert_at_cursor (buffer, message.c_str(), -1);
  gtk_text_buffer_insert_at_cursor (buffer, "\n", -1);
  GtkTextIter iter;
  gtk_text_buffer_get_end_iter (buffer, &iter);
  gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW (textview), &iter, 0.1, true, 0.5, 0.5);
  while (gtk_events_pending()) gtk_main_iteration();
}
Example #10
0
static void log_window_jump_to_error(LogWindow *logwin)
{
	GtkTextIter iter;
	gtk_text_buffer_get_end_iter(logwin->buffer, &iter);
	if (!gtk_text_iter_backward_to_tag_toggle(&iter, logwin->error_tag))
		return;

	gtk_text_iter_backward_line(&iter);
	gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(logwin->text), &iter, 0, TRUE, 0, 0);
}
Example #11
0
static gboolean remmina_chat_window_scroll_proc(RemminaChatWindow* window)
{
	GtkTextBuffer* buffer;
	GtkTextIter iter;

	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(window->history_text));
	gtk_text_buffer_get_end_iter(buffer, &iter);
	gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->history_text), &iter, 0.0, FALSE, 0.0, 0.0);

	return FALSE;
}
Example #12
0
static gboolean
log_do_tail (EventLog *log)
{
	GtkTextIter iter;

	gtk_text_buffer_get_end_iter (log->log_text, &iter);
	gtk_text_view_scroll_to_iter (log->text_view, &iter,
				      FALSE, FALSE, 0.0, 1.0);
	log->idle_tail = 0;

	return FALSE;
}
Example #13
0
static gboolean remmina_log_scroll_to_end(gpointer data)
{
	GtkTextIter iter;

	if (log_window)
	{
		gtk_text_buffer_get_end_iter(REMMINA_LOG_WINDOW (log_window)->log_buffer, &iter);
		gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(REMMINA_LOG_WINDOW (log_window)->log_view), &iter, 0.0, FALSE, 0.0,
				0.0);
	}
	return FALSE;
}
Example #14
0
File: text.c Project: polarcat/yad
/* searching */
static void 
do_search (GtkWidget *e, GtkWidget *w)
{
  static gchar *text = NULL;
  static guint offset;
  static GRegex *regex = NULL;
  GMatchInfo *match = NULL;
  GtkTextIter begin, end;

  g_free (pattern);
  pattern = g_strdup (gtk_entry_get_text (GTK_ENTRY (e)));
  gtk_widget_destroy (w);
  gtk_widget_queue_draw (text_view);

  if (new_search || gtk_text_buffer_get_modified (text_buffer))
    {
      /* get the text */
      g_free (text);
      gtk_text_buffer_get_bounds (text_buffer, &begin, &end);
      text = gtk_text_buffer_get_text (text_buffer, &begin, &end, FALSE);
      offset = 0;
      /* compile new regex */
      if (regex)
	g_regex_unref (regex);
      regex = g_regex_new (pattern, G_REGEX_EXTENDED | G_REGEX_OPTIMIZE, G_REGEX_MATCH_NOTEMPTY, NULL);
      new_search = FALSE;
    }

  /* search and select if found */
  if (g_regex_match (regex, text + offset, G_REGEX_MATCH_NOTEMPTY, &match))
    {
      gint sp, ep, spos, epos;

      g_match_info_fetch_pos (match, 0, &sp, &ep);

      /* positions are in bytes, not character, so here we must normalize it*/
      spos = g_utf8_pointer_to_offset (text, text + sp + offset);
      epos = g_utf8_pointer_to_offset (text, text + ep + offset);

      gtk_text_buffer_get_iter_at_offset (text_buffer, &begin, spos);
      gtk_text_buffer_get_iter_at_offset (text_buffer, &end, epos);

      gtk_text_buffer_select_range (text_buffer, &begin, &end);
      gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (text_view), &begin, 0, FALSE, 0, 0);

      offset += epos;
      
      g_match_info_free (match);
      match = NULL;
    }
  else
    new_search = TRUE;
}
Example #15
0
void iceb_printw(const char *stroka,GtkTextBuffer *buffer,GtkWidget *view)
{

GtkTextIter iter;

gtk_text_buffer_get_iter_at_offset(buffer,&iter,-1);
gtk_text_buffer_insert(buffer,&iter,stroka,-1);
gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(view),&iter,0.0,TRUE,0.,1.);
//gtk_text_buffer_place_cursor(GTK_TEXT_BUFFER(buffer),&iter);
iceb_refresh();
 
}
JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setCaretPosition
  (JNIEnv *env, jobject obj, jint pos)
{
  void *ptr;
  GtkWidget *text = NULL;
  GtkTextBuffer *buf;
  GtkTextIter iter;
  GtkTextMark *oldmark;
  GtkTextIter olditer;
  int oldpos;

  gdk_threads_enter ();

  ptr = NSA_GET_PTR (env, obj);

  text = gtk_bin_get_child (GTK_BIN (ptr));

  buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));

  /* Save old position. */
  oldmark = gtk_text_buffer_get_insert (buf);
  gtk_text_buffer_get_iter_at_mark (buf, &olditer, oldmark);
  oldpos = gtk_text_iter_get_offset (&olditer);

  /* Move to new position. */
  gtk_text_buffer_get_iter_at_offset (buf, &iter, pos);
  gtk_text_buffer_place_cursor (buf, &iter);

  /* Scroll to new position. Alignment is determined
     comparing the new position to the old position. */
  if (oldpos > pos)
    gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (text),
                                  &iter, 0, TRUE, 0, 0);
  else if (oldpos < pos)
    gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (text),
                                  &iter, 0, TRUE, 1, 1);

  gdk_threads_leave ();
}
Example #17
0
static void salida_imprimir(const char *value, GladeXML *xml) {
  if(value) {
    GString *valor = g_string_new("");
    g_string_sprintf(valor, "%s\n", (char *)value);
    GtkWidget* texto =  glade_xml_get_widget(xml, "txt_salida");
    GtkTextIter iter;
    GtkTextBuffer * buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(texto));
    gtk_text_buffer_get_iter_at_offset(buffer, &iter, -1);
    gtk_text_buffer_insert(buffer, &iter, valor->str, -1);
    g_string_free(valor, TRUE);
    gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(texto), &iter, 0.0, FALSE, 1.0, 1.0);
  }
}
Example #18
0
/* decode signal callback
 * puts the decoded result in the textbox
 */
static void decoded (GtkWidget *widget,
                     zbar_symbol_type_t symbol,
                     const char *result,
                     gpointer data)
{
    GtkTextBuffer *resultbuf = gtk_text_view_get_buffer(results);
    GtkTextIter end;
    gtk_text_buffer_get_end_iter(resultbuf, &end);
    gtk_text_buffer_insert(resultbuf, &end, zbar_get_symbol_name(symbol), -1);
    gtk_text_buffer_insert(resultbuf, &end, ":", -1);
    gtk_text_buffer_insert(resultbuf, &end, result, -1);
    gtk_text_buffer_insert(resultbuf, &end, "\n", -1);
    gtk_text_view_scroll_to_iter(results, &end, 0, FALSE, 0, 0);
}
Example #19
0
static void
jump_to_markerline(PurpleConversation *conv, gpointer null)
{
	PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
	int offset;
	GtkTextIter iter;

	if (!gtkconv)
		return;

	offset = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(gtkconv->imhtml), "markerline"));
	gtk_text_buffer_get_iter_at_offset(GTK_IMHTML(gtkconv->imhtml)->text_buffer, &iter, offset);
	gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(gtkconv->imhtml), &iter, 0, TRUE, 0, 0);
}
Example #20
0
void output_scroll_to_bottom(GtkWidget * tab)
{
  GtkTextView *out1, *out2;
  GtkTextIter iter;

  while (gtk_events_pending())
    gtk_main_iteration();

  // scroll to bottom
  out1 = GTK_TEXT_VIEW(interface_get_widget(tab, "output1"));
  out2 = GTK_TEXT_VIEW(interface_get_widget(tab, "output2"));
  if (!(GTK_WIDGET_VISIBLE(out2))) {
    //only scroll if the second output is not visible
    //that means that we're scrolled to the very bottom ...
    gtk_text_buffer_get_end_iter(gtk_text_view_get_buffer
               (out1), &iter);
    gtk_text_view_scroll_to_iter(out1, &iter, 0.0, TRUE, 0.0,
               1.0);
  }
  //second output ALWAYS gets scrolled to the bottom
  gtk_text_buffer_get_end_iter(gtk_text_view_get_buffer(out2),
             &iter);
  gtk_text_view_scroll_to_iter(out2, &iter, 0.0, TRUE, 0.0, 1.0);
}
Example #21
0
static gboolean _find_match(GHtml * ghtml, char const * buf, char const * str,
		size_t tlen)
{
	size_t offset;
	GtkTextIter start;
	GtkTextIter end;

	offset = str - buf;
	ghtml->search = offset + 1;
	gtk_text_buffer_get_iter_at_offset(ghtml->tbuffer, &start, offset);
	gtk_text_buffer_get_iter_at_offset(ghtml->tbuffer, &end, offset + tlen);
	gtk_text_buffer_select_range(ghtml->tbuffer, &start, &end);
	gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(ghtml->view), &start, 0.0,
			FALSE, 0.0, 0.0);
	return TRUE;
}
Example #22
0
void funcion_error(const char *nombre, const char *modulo, const char *textos) {
  if(xml && nombre && textos && modulo) {
    GString *valor = g_string_new("");
    g_string_sprintf(valor, "%s [%s]: %s\n", strdup(nombre), strdup(modulo), strdup(textos));
    // Sacar la salida por pantalla hace fácil redirigir el resultado de depuración
    // a un archivo de texto: pipeline --timer=500 vision.xml > vision.log
    printf("%s", valor->str);
    GtkWidget* texto =  glade_xml_get_widget(xml, "txt_error");
    GtkTextIter iter;
    GtkTextBuffer * buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(texto));
    gtk_text_buffer_get_iter_at_offset(buffer, &iter, -1);
    gtk_text_buffer_insert(buffer, &iter, valor->str, -1);
    g_string_free(valor, TRUE);
    gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(texto), &iter, 0.0, FALSE, 1.0, 1.0);
  }
}
Example #23
0
void search_btn_clicked(GtkWidget *wid,gpointer data){
	SearchBox *search = (SearchBox*) data;
	gchar const *txt_to_find;
	txt_to_find = gtk_entry_get_text(GTK_ENTRY(search->find_entry));
	if(gtk_text_iter_forward_search (&iStart, (gchar*)txt_to_find ,0,&iBegin, &iEnd, NULL)){
		gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW(search->app->editor->source_view),&iStart,0,TRUE,0.5,0.5);
		gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER(search->app->editor->buffer),&iBegin);
		gtk_text_buffer_select_range (GTK_TEXT_BUFFER(search->app->editor->buffer),&iBegin,&iEnd);
		iStart = iEnd;
		isFound = TRUE;
	}else{
		gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(search->app->editor->buffer),&iStart);	
		isFound = FALSE;
	}

}
Example #24
0
/*****************************************************************************
  Scrolls the luaconsole all the way to the bottom.
  If delayed is TRUE, it will be done in a idle_callback.

  Modified copy of chatline_scroll_to_bottom().
*****************************************************************************/
static void luaconsole_dialog_scroll_to_bottom(void)
{
  struct luaconsole_data *pdialog = luaconsole_dialog_get();

  fc_assert_ret(pdialog);

  if (pdialog->shell) {
    GtkTextIter end;

    fc_assert_ret(NULL != pdialog->message_buffer);
    fc_assert_ret(NULL != pdialog->message_area);

    gtk_text_buffer_get_end_iter(pdialog->message_buffer, &end);
    gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(pdialog->message_area),
                                 &end, 0.0, TRUE, 1.0, 0.0);
  }
}
Example #25
0
static	void
SetText(
	GtkWidget	*widget,
	WidgetData	*wdata,
	_Text		*data)
{
	GtkTextBuffer	*buffer;
	GtkTextIter		iter;
ENTER_FUNC;
	SetCommon(widget,wdata);
	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));
	gtk_text_buffer_set_text(buffer, data->text, strlen(data->text));
	gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(widget), &iter, 0, 0);
	gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(widget), &iter, 
		0.0, TRUE, 0.0, 0.0);
LEAVE_FUNC;
}
Example #26
0
static void help_window_scroll(GtkWidget *text, const gchar *key)
{
	gchar *needle;
	GtkTextBuffer *buffer;
	GtkTextIter iter;
	GtkTextIter start, end;

	if (!text || !key) return;

	needle = g_strdup_printf("[section:%s]", key);

	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
	gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);

	if (gtk_text_iter_forward_search(&iter, needle, GTK_TEXT_SEARCH_TEXT_ONLY,
					 &start, &end, NULL))
		{
		gint line;
		GtkTextMark *mark;

		line = gtk_text_iter_get_line(&start);
		gtk_text_buffer_get_iter_at_line_offset(buffer, &iter, line, 0);
		gtk_text_buffer_place_cursor(buffer, &iter);

#if 0
		gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(text), &iter, 0.0, TRUE, 0, 0);
#endif

		/* apparently only scroll_to_mark works when the textview is not visible yet */

		/* if mark exists, move it instead of creating one for every scroll */
		mark = gtk_text_buffer_get_mark(buffer, SCROLL_MARKNAME);
		if (mark)
			{
			gtk_text_buffer_move_mark(buffer, mark, &iter);
			}
		else
			{
			mark = gtk_text_buffer_create_mark(buffer, SCROLL_MARKNAME, &iter, FALSE);
			}
		gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(text), mark, 0.0, TRUE, 0, 0);
		}

	g_free(needle);
}
Example #27
0
void linphone_gtk_push_text(GtkTextView *v, const char *from, const char *message, gboolean me){
	GtkTextBuffer *b=gtk_text_view_get_buffer(v);
	GtkTextIter iter,begin;
	int off;
	gtk_text_buffer_get_end_iter(b,&iter);
	off=gtk_text_iter_get_offset(&iter);
	gtk_text_buffer_insert(b,&iter,from,-1);
	gtk_text_buffer_get_end_iter(b,&iter);
	gtk_text_buffer_insert(b,&iter,":\t",-1);
	gtk_text_buffer_get_end_iter(b,&iter);
	gtk_text_buffer_get_iter_at_offset(b,&begin,off);
	gtk_text_buffer_apply_tag_by_name(b,me ? "green" : "blue" ,&begin,&iter);
	gtk_text_buffer_insert(b,&iter,message,-1);
	gtk_text_buffer_get_end_iter(b,&iter);
	gtk_text_buffer_insert(b,&iter,"\n",-1);
	gtk_text_buffer_get_end_iter(b,&iter);
	gtk_text_view_scroll_to_iter(v,&iter,0,FALSE,0,0);
}
void
cainteoir_document_view_scroll_to_anchor(CainteoirDocumentView *view, const gchar *anchor)
{
	GtkTextView *text_view = GTK_TEXT_VIEW(CAINTEOIR_DOCUMENT_VIEW_PRIVATE(view)->text_view);
	GtkTextBuffer *buffer = gtk_text_view_get_buffer(text_view);
	GtkTextMark *mark = gtk_text_buffer_get_mark(buffer, anchor);

	GtkTextIter position;
	if (mark)
	{
		gtk_text_buffer_get_iter_at_mark(buffer, &position, mark);
		gtk_text_iter_forward_char(&position);
	}
	else
		gtk_text_buffer_get_start_iter(buffer, &position);

	gtk_text_view_scroll_to_iter(text_view, &position, 0, TRUE, 0.0, 0.0);
}
Example #29
0
void Dump_IOPort(int port)
{
  char whole_buffer[IOOUTBUFLEN * 4];		/* 4x in case of Hex */
  char bchar;
  int i, ascptr;
  GtkTextIter end;

  whole_buffer[0] = 0;				/* start with a clean buff */

  if (IOPort[port] == NULL)			/* struct exists? */
  {
//    fprintf(stderr, "Attempting to dump from non existing port %d\n", port);
    return;
  }

  if (IOPort[port]->ishex)			/* dump in hex? */
  {
    for (i = 0; i < IOPort[port]->out_ptr; i++)
    {
      sprintf(tstr, "%02X ", IOPort[port]->obuffer[i]);
      strcat(whole_buffer, tstr);
    }
  }
  else
  {
    ascptr = 0;
    for (i = 0; i < IOPort[port]->out_ptr; i++)
    {
      bchar = IOPort[port]->obuffer[i];
      if (
	    (bchar >= 0x20 && bchar < 0x7f)	/* printable? */
	 || (bchar == 0x0a)
	 )
        whole_buffer[ascptr++] = bchar;
    }

    whole_buffer[ascptr] = (char)0;		/* terminate string */
  }
 
  gtk_text_buffer_set_text(ioport_textbuffer, whole_buffer, -1);
  gtk_text_buffer_get_end_iter(ioport_textbuffer, &end);
  gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(ioporttext), &end, 0, FALSE, 0, 0);
}
Example #30
0
void goto_local_label (const gchar *l)
{
	gchar *t = g_utf8_find_next_char (l, NULL);
	gchar *s = g_strconcat ("<a name=\"", t, NULL);

	GtkTextIter iter;
	GtkTextIter match_start;

	GtkTextMark *m = gtk_text_buffer_get_insert (GTK_TEXT_BUFFER(cur_text_doc->text_buffer)); 
	gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER(cur_text_doc->text_buffer), &iter, m);

	if (gtk_text_iter_forward_search  (&iter, s, GTK_TEXT_SEARCH_TEXT_ONLY, &match_start, NULL, NULL))
	{
		gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER(cur_text_doc->text_buffer), &match_start );
		gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW(cur_text_doc->text_view), &match_start, 0.0, TRUE, 0.0, 0.0 );
		gtk_text_view_place_cursor_onscreen (GTK_TEXT_VIEW (cur_text_doc->text_view));
	}

	g_free (s);
}