[LinuxFocus-icon]
<--  | �����  | �����  | ������  | �����

������� | ������ | ������ | ��� LF
��� �������� �������� �� ��������� ������: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

Ozcan Gungor
����� Özcan Güngör
<ozcangungor(at)netscape.net>

�� ������:
�� ������ ������ � �������� �� ��������� ������ � �������� �������������� Linux � Oracle � ���-������������.

������� �� �������:
Yuri Slobodyanyuk <yurisk(at)inbox.ru>

����������:

 

���������������� ��� � �������������� GTK - ����� 3

GTK

������:

� ���� ����� ������ �� ������, ��� ��������� ��������� ������������ ����������������� ���������� (���) � ������� GTK.� �� ����, ��������� ��������� ��� �����. ����� ������ ��� ������ ��� ���������� ��������� ������ � ����� ���������������� C:

  • ����������
  • �������
  • ���������
���������� ��������� ���������� ������:
��������������� ��� � �������������� GTK - ����� 1.,
��������������� ��� � �������������� GTK - ����� 2. .
��� ������ ������� ������ ��������� ��� ��� ����� ������ � �����.

_________________ _________________ _________________

 

Toggle ������.

��� ������ �������� ��� ������� ������ �� ����� ��� ���������: "������" ��� ���. ��� �������� ������ toggle ����� ���� ������������ ���� �� ��������� �������:

GtkWidget *toggle=gtk_toggle_button_new(void);
GtkWidget *toggle=gtk_toggle_button_new_with_label(const gchar *label);

������ ������� ������� toggle ������ ��� ��������� ����� � �� ����� ��� ������ ������� ������� �� �� ������� ������ label � ���..
�� ������ ������ ��������� ������ ��������� ��������:

gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
                              gboolean is_active);

��� toggle_button ��� ������ ��������� ������� ������ �������� � is_active �������� ��������� (0 ��� 1). ����� ��� 0 - ������ �� � "�������" ���������; ����� �� 1 �� ������ � "�������" ���������..

����� ������ ��������� ������ ����������� ��������� �������:

gboolean gtk_toggle_button_get_active(GtkToggleButton *button);

������� "toggled" (��������� ���������) ����� ���� ��������� � ������ "toggle".

���� �������� ������:

#include <gtk/gtk.h>
void togg(GtkWidget *widget, gpointer *data){
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data)))
    g_print("State is 1\n");
   else
    g_print("State is 0\n");
}

int main( int argc,char *argv[] )
   {

   GtkWidget *window;
   GtkWidget *button;

   gtk_init (&argc, &argv);

   /* Create a new window */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Toggle Button");

   /* Connect destroy event to the window. */
   gtk_signal_connect (GTK_OBJECT (window), "destroy",
                       GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

   /* Creates a toggle button */
   button=gtk_toggle_button_new_with_label("I'm a toggle button");

   /* Add the button to window */
   gtk_container_add(GTK_CONTAINER(window),button);

   /* Connect "toggled" event to the button */
   gtk_signal_connect (GTK_OBJECT (button), "toggled",
                       GTK_SIGNAL_FUNC(togg),(gpointer *)button);

   gtk_widget_show(button);
   gtk_widget_show (window);

   gtk_main ();
   return(0);
}
 

Check ������.

������ check (��� �� ��������� ��� check box) ��� �������� ������ toggle. ��� ����� ���� ����������� ��� ������ �����-���� ���������.
��� �������� ������ check ������������ ��������� �������:

GtkWidget* gtk_check_button_new (void);
GtkWidget* gtk_check_button_new_with_label (const gchar *label);

��������� ��� ����� �� ��� ��� ������ toggle.

������:

#include <gtk/gtk.h>
void togg(GtkWidget *widget, gpointer *data){
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data)))
       g_print("State is 1\n");
   else
    g_print("State is 0\n");
}

int main( int argc,char *argv[] )
{

    GtkWidget *window;
    GtkWidget *button;

    gtk_init (&argc, &argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Check Button");

    /* Connect destroy event to the window. */
    gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

    /* Creates a check button */
    button=gtk_check_button_new_with_label("I'm a check button");

    /* Add the button to window */
    gtk_container_add(GTK_CONTAINER(window),button);

    /* Connect "toggled" event to the button */
    gtk_signal_connect (GTK_OBJECT (button), "toggled",
                        GTK_SIGNAL_FUNC(togg), (gpointer *)button);
    gtk_widget_show(button);
    gtk_widget_show (window);

    gtk_main ();
    return(0);
}
 

Label (�����)

����� ��������� ��� ����������� ����� ����� � ����� ����� ����.
��� �������� ����� ����������� ��������� �������:

GtkWidget* gtk_label_new(const gchar *text);

� ��������

gtk_label_set_text(GtkLabel *label, gchar *text);

�� ������ �������� ����� �� ����� � ����� �����.

gtk_label_set_justify(GtkLabel *label, GtkJustification jtype);

������� gtk_label_set_justify ������������ ��� ������������ ������ �� �����. jtype ����� ���� :

gtk_label_set_line_wrap (GtkLabel *label,gboolean wrap);

��������� ������ ���� �������� �� ����� ��� �������� �� ��������� ������ ���� �� ��������� �� �����.����� wrap ����� 1 ����� ����� ��������� �� ��������� ������, � ��������� ������ ����� �� ����������.

gtk_label_get(GtkLabel *label, gchar **str)

������������ ����� ��������� ����� ����� � ���������� str.

 

ToolTips (����������� ���������)

ToolTip ��� �����-��������� ������������ ����� ������ ����� ��������� ��� ��������.�������� �� ������ ������ �����-��������� "������� ����������" ��� ������ � ���� ����� �������� ����� ����� ��� ���.

����� ��� ������� ������� ����� ������� ������ GtkToolTips:

GtkToolTips* gtk_tooltips_new();

� ������ ��� �������� ������-���������:

gtk_tooltips_set_tip(GtkTooltips *tooltips, GtkWidget *widget,
                     const gchar *tip_text,const gchar *tip_private);

��������� ������:

#include <gtk/gtk.h>
int main( int argc,char *argv[] )
{
    GtkWidget *window;
    GtkWidget *button;
    GtkTooltips *tip;

    gtk_init (&argc, &argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Tooltips");

    /* Connect destroy event to the window. */
    gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC (gtk_main_quit), NULL);

    /* Creates a button */
    button=gtk_button_new_with_label("I'm a Button");

    /* Add the button to window */
    gtk_container_add(GTK_CONTAINER(window),button);

    /* Creates a tooltips*/
    tip=gtk_tooltips_new();

    /* Attache this tooltips to button with text*/
    gtk_tooltips_set_tip(tip, button, "Click me!",NULL);

    gtk_widget_show(button);
    gtk_widget_show (window);

    gtk_main ();
    return(0);
}

��� ��������� �������:

gtk_tooltips_enable (GtkTooltips *tooltips);

���������� �����-���������.

gtk_tooltips_disable (GtkTooltips *tooltips);

������������ �����-���������.

����� �������� ����� ���������� ���������� �����-���������� �������.

GtkTooltipsData* gtk_tooltips_get_data(GtkWidget *widget);

GtkTooltipsData ��� ��������� ���������� ����:

struct _GtkTooltipsData
{
   GtkTooltips *tooltips;
   GtkWidget *widget;
   gchar *tip_text;
   gchar *tip_private;
   GdkFont *font;
   gint width;
   GList *row;
};
����� ���������� ����� ��������� �����-���������:
gtk_tooltips_set_delay (GtkTooltips *tip, guint delay)
 


Combo Box

Combo Box ��� ������-���� ������������ � ���������� ������� � ������� ����� ������������� �����.

�� ����� ���� ������ � �������:

GtkWidget *gtk_combo_new();

� ��� ����� ������ ��������� ��������� ���������� � ������� ��������� GList:

GList *glist=NULL;

���� ��������� ������� ��� ������ �������� � ������ ���:

GList *g_list_append(GList *list, gchar *option);

����� ��������� ������ ������ ���� �������� � Combo Box:

gtk_combo_set_popdown_strings(GtkCombo *combo, GList *List);

������ Combo Box �����.��������� ��������� ������� ����� ���������:

gchar *gtk_entry_get_text(GtkEntry *entry);

entry ��� GTK_ENTRY(GTK_COMBO(combo)->entry)) � ���� ������.

gtk_combo_set_use_arrows(GtkCombo *combo,gint val);

��� ������� ������������ ����� ������������\�������������� ������� �����\���� �� ���������� ������������ ��� ��������� �������� � Combo Box. ����� val ����� 0 ��� ������� �� ������������� � �������� � ��������������� ������. �� ����� �������� � Combo Box ������� �� �������� ����������� � ������ ��� ������� �� �������������..

gtk_combo_set_use_arrows_always(GtkCombo *combo,gint val);

��� ������� ���������� gtk_combo_set_use_arrows �� ����� �������� � Combo Box ������� �� �������� ����������� � ������ ��� ������� �������������..

gtk_combo_set_value_in_list(GtkCombo *combo, gboolean val,
                             gboolean ok_if_empty);

����� val ����� 1 �� ������ ������ �������� �� ������.����� ok_if_empty ����� 1 �������� ����� ���� ������ (�������������). .

#include <gtk/gtk.h>
void act(GtkWidget *widget, gpointer *data){
   g_print((gchar *)data);
}

int main( int argc,char *argv[] ) {
   GtkWidget *window;
   GtkWidget *combo;
   GtkWidget *button;
   GtkWidget *box;
   GList *list=NULL;

   list=g_list_append(list,"Slackware");
   list=g_list_append(list,"RedHat");
   list=g_list_append(list,"SuSE");

   gtk_init (&argc, &argv);

   /* Create a new window */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Combo Box");

   /* Connect destroy event to the window. */
   gtk_signal_connect (GTK_OBJECT (window), "destroy",
                       GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

   /* Create a new horizontal box */
   box=gtk_hbox_new(1,0);
   gtk_container_add(GTK_CONTAINER(window),box);

   /* Creates a combo box */
   combo=gtk_combo_new();

   /* Sets the list */
   gtk_combo_set_popdown_strings(GTK_COMBO(combo),list);

   /* Enables up/down keys change the value. */
   gtk_combo_set_use_arrows_always(GTK_COMBO(combo),1);

   gtk_box_pack_start(GTK_BOX(box), combo,1,1,1);

   button=gtk_button_new_with_label("Write it");
   gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(act),
             gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(combo)->entry)));
   gtk_box_pack_start(GTK_BOX(box), button,1,1,1);

   gtk_widget_show(box);
   gtk_widget_show(combo);
   gtk_widget_show(button);
   gtk_widget_show (window);

   gtk_main ();
   return(0);
   }
����� ��������� � ����������� �����������.  

�������� �������

� ������ ������� ���� �������� �������. �� ���� �������� �� ������ �������� ���� ����������� ��� ����������� ����������� ������ ���������
 talkback page 

<--, ������� � ��������� �������� �������

Webpages maintained by the LinuxFocus Editor team
© Özcan Güngör, FDL
LinuxFocus.org
Translation information:
tr --> -- : Özcan Güngör <ozcangungor(at)netscape.net>
en --> tr: Özcan Güngör <ozcangungor(at)netscape.net>
en --> ru: Yuri Slobodyanyuk <yurisk(at)inbox.ru>

2004-04-28, generated by lfparser version 2.43