🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #60710

Re: wnętrze GtkEditable

#60710
From: tj
Date: Mon, 28 Nov 2005 23:09
117 lines
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-mail
References: <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