Blame platform-demos/cs/textview.c.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="textview.c" xml:lang="cs">
Packit 1470ea
  <info>
Packit 1470ea
    <title type="text">TextView (C)</title>
Packit 1470ea
    <link type="guide" xref="c#multiline"/>
Packit 1470ea
    <revision version="0.1" date="2012-07-10" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Monica Kochofar</name>
Packit 1470ea
      <email its:translate="no">monicakochofar@gmail.com</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>Widget, který zobrazuje GtkTextBuffer</desc>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>Widget TextView</title>
Packit 1470ea
<note style="sidebar">

Když zmáčkneme <key>Enter</key>, dostaneme nový řádek.

Packit 1470ea
     

Když zmáčkneme <key>Enter</key> vícekrát, než je počet řádků ve výchozí velikosti okna, objeví se svislý posuvník.

Packit 1470ea
     

Když napíšeme dlouhou větu, text se zalomí mezi slovy.

Packit 1470ea
     

Když napíšeme dlouhéééééééééééééééééééééééééééééééé (to bylo ale dlouhé) slovo, objeví se vodorovný posuvník.

</note>
Packit 1470ea
Packit 1470ea
  <media type="image" mime="image/png" src="media/textview.png"/>
Packit 1470ea
    

Zde je příklad Gtk.TextView

Packit 1470ea
Packit 1470ea
      
Packit 1470ea
#include <gtk/gtk.h>
Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
static void
Packit 1470ea
activate (GtkApplication *app,
Packit 1470ea
          gpointer        user_data)
Packit 1470ea
{
Packit 1470ea
  /* Deklarace proměnných */
Packit 1470ea
  GtkWidget *window;
Packit 1470ea
  GtkWidget *text_view;
Packit 1470ea
  GtkWidget *scrolled_window;
Packit 1470ea
Packit 1470ea
  GtkTextBuffer *buffer;
Packit 1470ea
Packit 1470ea
Packit 1470ea
  /* Vytvoří okno s názvem a výchozí velikostí */
Packit 1470ea
  window = gtk_application_window_new (app);
Packit 1470ea
  gtk_window_set_title (GTK_WINDOW (window), "TextView Example");
Packit 1470ea
  gtk_window_set_default_size (GTK_WINDOW (window), 220, 200);
Packit 1470ea
Packit 1470ea
Packit 1470ea
  /* Textová vyrovnávací paměť představující upravovaný text */
Packit 1470ea
  buffer = gtk_text_buffer_new (NULL);
Packit 1470ea
  
Packit 1470ea
Packit 1470ea
  /* TextView je widget, ve kterém můžeme zobrazit textovou vyrovnávací paměť. 
Packit 1470ea
   * Zalamování řádků je nastaveno na zalamování mezi slovy.
Packit 1470ea
   */
Packit 1470ea
  text_view = gtk_text_view_new_with_buffer (buffer);
Packit 1470ea
  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD); 
Packit 1470ea
Packit 1470ea
Packit 1470ea
  /* Vytvoří okno s posuvníky. Obvykle se oběma parametrům předává NULL, takže 
Packit 1470ea
   * se vytvoření svislého/vodorovného posuvníku automaticky přizpůsobí. Nastavení 
Packit 1470ea
   * pravidel pro posuvníky na automatiku umožní posuvníkům zobrazit se, jen když 
Packit 1470ea
   * je to zapotřebí. 
Packit 1470ea
   */
Packit 1470ea
  scrolled_window = gtk_scrolled_window_new (NULL, NULL);
Packit 1470ea
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), 
Packit 1470ea
                                  GTK_POLICY_AUTOMATIC, 
Packit 1470ea
                                  GTK_POLICY_AUTOMATIC); 
Packit 1470ea
  /* Následující funkce se používá k přidání do okna s posuvníky potomků
Packit 1470ea
   * se schopností posouvání (např. text_view), jinak by se muselo 
Packit 1470ea
   * použít gtk_scrolled_window_add_with_viewport()
Packit 1470ea
   */
Packit 1470ea
  gtk_container_add (GTK_CONTAINER (scrolled_window), 
Packit 1470ea
                                         text_view);
Packit 1470ea
  gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 5);
Packit 1470ea
 
Packit 1470ea
  
Packit 1470ea
  gtk_container_add (GTK_CONTAINER (window), scrolled_window);
Packit 1470ea
Packit 1470ea
  gtk_widget_show_all (window);
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
int
Packit 1470ea
main (int argc, char **argv)
Packit 1470ea
{
Packit 1470ea
  GtkApplication *app;
Packit 1470ea
  int status;
Packit 1470ea
Packit 1470ea
  app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
Packit 1470ea
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
Packit 1470ea
  status = g_application_run (G_APPLICATION (app), argc, argv);
Packit 1470ea
  g_object_unref (app);
Packit 1470ea
Packit 1470ea
  return status;
Packit 1470ea
}
Packit 1470ea
Packit 1470ea

V této ukázce se používá následující:

Packit 1470ea
<list>
Packit 1470ea
  <item>

<link href="http://developer.gnome.org/gtk3/3.4/GtkApplication.html">GtkApplication</link>

</item>
Packit 1470ea
  <item>

<link href="http://developer.gnome.org/gtk3/3.4/GtkWindow.html">GtkWindow</link>

</item>
Packit 1470ea
  <item>

<link href="http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html">GtkTextBuffer</link>

</item>
Packit 1470ea
  <item>

<link href="http://developer.gnome.org/gtk3/stable/GtkTextView.html">GtkTextView</link>

</item>
Packit 1470ea
  <item>

<link href="http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html">GtkScrolledWindow</link>

</item>
Packit 1470ea
  <item>

<link href="http://developer.gnome.org/gtk3/stable/GtkContainer.html">GtkContainer</link>

</item>
Packit 1470ea
</list>
Packit 1470ea
</page>