Article View: pl.comp.os.linux.programowanie
Article #60710Re: wnętrze GtkEditable
From: tj
Date: Mon, 28 Nov 2005 23:09
Date: Mon, 28 Nov 2005 23:09
117 lines
4746 bytes
4746 bytes
Dnia Fri, 25 Nov 2005 18:41:45 +0100, Zebbra napisał(a):
> gdzie mogę dowiedzieć się jak poprawić wnętrze GtkEditable. ew. odczytać
> wszystko po jednym znaku. Chodzi mi o pracę bezpośrednio na buforze.
Może poniższy kod Tobie pomoże.
Ten kod znalazłem na jakieś stronie.
include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
// Example GTK program to create and modify a text entry box.
// BSD license.
// Compile: g++ -g -o gtkTextEntryBox gtkTextEntryBox.c `pkg-config --cflags --libs gtk+-2.0` `gnome-config --cflags --libs gnome gnomeui`
static gboolean delete_event( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{
return FALSE;
}
static void destroy( GtkWidget *widget,
gpointer data )
{
gtk_main_quit ();
}
int main( int argc, char *argv[] )
{
GtkWidget *window_Widget;
GtkWidget *vBox_Widget;
GtkWidget *boxLabel_Widget;
GtkWidget *text_entry_Widget;
GtkWidget *textLabel_Widget;
char textLabel[64];
GdkColor colorBlack;
GdkColor colorGreen;
// black
colorBlack.red=0;
colorBlack.green=0;
colorBlack.blue=0;
// Green
colorGreen.red=0;
colorGreen.green=65535;
colorGreen.blue=0;
gtk_init (&argc, &argv);
window_Widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window_Widget), "Text Entry Box Example");
g_signal_connect (G_OBJECT (window_Widget), "delete_event",
G_CALLBACK (delete_event), NULL);
g_signal_connect (G_OBJECT (window_Widget), "destroy",
G_CALLBACK (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window_Widget), 10);
vBox_Widget = gtk_vbox_new (FALSE, 0);
char *textLabel0="Display Label";
sprintf(textLabel, "<small>%s</small>",textLabel0);
textLabel_Widget = gtk_label_new (textLabel);
gtk_label_set_markup(GTK_LABEL (textLabel_Widget),textLabel);
gtk_label_set_justify(GTK_LABEL (textLabel_Widget),GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (textLabel_Widget), 0, 0.5);
gtk_widget_show (textLabel_Widget);
gtk_box_pack_start( GTK_BOX (vBox_Widget),
textLabel_Widget,
TRUE,
TRUE,
0);
// --------------------------------------------------------------------
// Create text entry widget and modify.
// --------------------------------------------------------------------
text_entry_Widget = gtk_entry_new();
gtk_widget_modify_text(text_entry_Widget, GTK_STATE_NORMAL, &colorGreen);
gtk_widget_modify_base(text_entry_Widget, GTK_STATE_NORMAL, &colorBlack);
GtkStyle *style = gtk_widget_get_style(text_entry_Widget);
pango_font_description_set_weight(style->font_desc, PANGO_WEIGHT_BOLD);
gtk_widget_modify_font(text_entry_Widget, style->font_desc);
int text_width = 20; // Width of field in characters
gtk_entry_set_width_chars(GTK_ENTRY(text_entry_Widget), text_width);
gtk_editable_set_editable(GTK_EDITABLE(text_entry_Widget), FALSE);
GTK_WIDGET_UNSET_FLAGS(text_entry_Widget, GTK_CAN_FOCUS);
char *txtBuffer = "Display Text";
gtk_entry_set_text(GTK_ENTRY(text_entry_Widget), txtBuffer);
// --------------------------------------------------------------------
gtk_box_pack_start (GTK_BOX (vBox_Widget), text_entry_Widget, TRUE, TRUE, 0);
gtk_widget_show (text_entry_Widget);
gtk_container_add (GTK_CONTAINER (window_Widget), vBox_Widget);
gtk_widget_show (vBox_Widget);
gtk_widget_show (window_Widget);
gtk_main ();
return 0;
}
Technical Details
Message-ID:
<pan.2005.11.28.23.09.38.683205@_hehe.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<dm7id3$6i2$3@atlantis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: tj <nie_m@_hehe.pl> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: wnętrze GtkEditable Date: Tue, 29 Nov 2005 00:09:43 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 118 Message-ID: <pan.2005.11.28.23.09.38.683205@_hehe.pl> References: <dm7id3$6i2$3@atlantis.news.tpi.pl> NNTP-Posting-Host: 212.244.162.170 Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1133219405 20963 212.244.162.170 (28 Nov 2005 23:10:05 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Mon, 28 Nov 2005 23:10:05 +0000 (UTC) User-Agent: Pan/0.14.2.91 (As She Crawled Across the Table) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit