summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/samples/layout/gnomelayout.cpp
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2009-11-10 10:19:34 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2009-11-10 10:19:34 +0000
commitc736ef2860429aa9916c9da4cac5b3995df00273 (patch)
treeee1fc30859f9c078800c893e9c79f21f791074c5 /Build/source/libs/icu/icu-xetex/samples/layout/gnomelayout.cpp
parent9ab1d67ae5be915e0a7e146123ea577b8b7d85cf (diff)
towards TL2010: libs/icu
git-svn-id: svn://tug.org/texlive/trunk@15954 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/samples/layout/gnomelayout.cpp')
-rw-r--r--Build/source/libs/icu/icu-xetex/samples/layout/gnomelayout.cpp341
1 files changed, 0 insertions, 341 deletions
diff --git a/Build/source/libs/icu/icu-xetex/samples/layout/gnomelayout.cpp b/Build/source/libs/icu/icu-xetex/samples/layout/gnomelayout.cpp
deleted file mode 100644
index 31e25871d45..00000000000
--- a/Build/source/libs/icu/icu-xetex/samples/layout/gnomelayout.cpp
+++ /dev/null
@@ -1,341 +0,0 @@
-
-/*
- ****************************************************************************** *
- *
- * Copyright (C) 1999-2007, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- ****************************************************************************** *
- * file name: gnomelayout.cpp
- *
- * created on: 09/04/2001
- * created by: Eric R. Mader
- */
-
-#include <gnome.h>
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#include "unicode/ustring.h"
-#include "unicode/uscript.h"
-
-#include "GnomeFontInstance.h"
-
-#include "paragraph.h"
-
-#include "GnomeGUISupport.h"
-#include "GnomeFontMap.h"
-#include "UnicodeReader.h"
-#include "ScriptCompositeFontInstance.h"
-
-#define ARRAY_LENGTH(array) (sizeof array / sizeof array[0])
-
-struct Context
-{
- long width;
- long height;
- Paragraph *paragraph;
-};
-
-static FT_Library engine;
-static GnomeGUISupport *guiSupport;
-static GnomeFontMap *fontMap;
-static ScriptCompositeFontInstance *font;
-
-static GSList *appList = NULL;
-
-GtkWidget *newSample(const gchar *fileName);
-void closeSample(GtkWidget *sample);
-
-void showabout(GtkWidget */*widget*/, gpointer /*data*/)
-{
- GtkWidget *aboutBox;
- const gchar *documentedBy[] = {NULL};
- const gchar *writtenBy[] = {
- "Eric Mader",
- NULL
- };
-
- aboutBox = gnome_about_new("Gnome Layout Sample",
- "0.1",
- "Copyright (C) 1998-2006 By International Business Machines Corporation and others. All Rights Reserved.",
- "A simple demo of the ICU LayoutEngine.",
- writtenBy,
- documentedBy,
- "",
- NULL);
-
- gtk_widget_show(aboutBox);
-}
-
-void notimpl(GtkObject */*object*/, gpointer /*data*/)
-{
- gnome_ok_dialog("Not implemented...");
-}
-
-gchar *prettyTitle(const gchar *path)
-{
- const gchar *name = g_basename(path);
- gchar *title = g_strconcat("Gnome Layout Sample - ", name, NULL);
-
- return title;
-}
-
-void openOK(GtkObject */*object*/, gpointer data)
-{
- GtkFileSelection *fileselection = GTK_FILE_SELECTION(data);
- GtkWidget *app = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(fileselection), "app"));
- Context *context = (Context *) gtk_object_get_data(GTK_OBJECT(app), "context");
- gchar *fileName = g_strdup(gtk_file_selection_get_filename(fileselection));
- Paragraph *newPara;
-
- gtk_widget_destroy(GTK_WIDGET(fileselection));
-
- newPara = Paragraph::paragraphFactory(fileName, font, guiSupport);
-
- if (newPara != NULL) {
- gchar *title = prettyTitle(fileName);
- GtkWidget *area = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(app), "area"));
-
- if (context->paragraph != NULL) {
- delete context->paragraph;
- }
-
- context->paragraph = newPara;
- gtk_window_set_title(GTK_WINDOW(app), title);
-
- gtk_widget_hide(area);
- context->paragraph->breakLines(context->width, context->height);
- gtk_widget_show_all(area);
-
- g_free(title);
- }
-
- g_free(fileName);
-}
-
-void openfile(GtkObject */*object*/, gpointer data)
-{
- GtkWidget *app = GTK_WIDGET(data);
- GtkWidget *fileselection;
- GtkWidget *okButton;
- GtkWidget *cancelButton;
-
- fileselection =
- gtk_file_selection_new("Open File");
-
- gtk_object_set_data(GTK_OBJECT(fileselection), "app", app);
-
- okButton =
- GTK_FILE_SELECTION(fileselection)->ok_button;
-
- cancelButton =
- GTK_FILE_SELECTION(fileselection)->cancel_button;
-
- gtk_signal_connect(GTK_OBJECT(fileselection), "destroy",
- GTK_SIGNAL_FUNC(gtk_main_quit), NULL);
-
- gtk_signal_connect(GTK_OBJECT(okButton), "clicked",
- GTK_SIGNAL_FUNC(openOK), fileselection);
-
- gtk_signal_connect_object(GTK_OBJECT(cancelButton), "clicked",
- GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(fileselection));
-
- gtk_window_set_modal(GTK_WINDOW(fileselection), TRUE);
- gtk_widget_show(fileselection);
- gtk_main();
-}
-
-void newapp(GtkObject */*object*/, gpointer /*data*/)
-{
- GtkWidget *app = newSample("Sample.txt");
-
- gtk_widget_show_all(app);
-}
-
-void closeapp(GtkWidget */*widget*/, gpointer data)
-{
- GtkWidget *app = GTK_WIDGET(data);
-
- closeSample(app);
-}
-
-void shutdown(GtkObject */*object*/, gpointer /*data*/)
-{
- gtk_main_quit();
-}
-
-GnomeUIInfo fileMenu[] =
-{
- GNOMEUIINFO_MENU_NEW_ITEM((gchar *) "_New Sample",
- (gchar *) "Create a new Gnome Layout Sample",
- newapp, NULL),
-
- GNOMEUIINFO_MENU_OPEN_ITEM(openfile, NULL),
- GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_MENU_CLOSE_ITEM(closeapp, NULL),
- GNOMEUIINFO_MENU_EXIT_ITEM(shutdown, NULL),
- GNOMEUIINFO_END
-};
-
-GnomeUIInfo helpMenu[] =
-{
- // GNOMEUIINFO_HELP("gnomelayout"),
- GNOMEUIINFO_MENU_ABOUT_ITEM(showabout, NULL),
- GNOMEUIINFO_END
-};
-
-GnomeUIInfo mainMenu[] =
-{
- GNOMEUIINFO_SUBTREE(N_((gchar *) "File"), fileMenu),
- GNOMEUIINFO_SUBTREE(N_((gchar *) "Help"), helpMenu),
- GNOMEUIINFO_END
-};
-
-gint eventDelete(GtkWidget *widget, GdkEvent */*event*/, gpointer /*data*/)
-{
- closeSample(widget);
-
- // indicate that closeapp already destroyed the window
- return TRUE;
-}
-
-gint eventConfigure(GtkWidget */*widget*/, GdkEventConfigure *event, Context *context)
-{
- if (context->paragraph != NULL) {
- context->width = event->width;
- context->height = event->height;
-
- if (context->width > 0 && context->height > 0) {
- context->paragraph->breakLines(context->width, context->height);
- }
- }
-
- return TRUE;
-}
-
-gint eventExpose(GtkWidget *widget, GdkEvent */*event*/, Context *context)
-{
- if (context->paragraph != NULL) {
- gint maxLines = context->paragraph->getLineCount() - 1;
- gint firstLine = 0, lastLine = context->height / context->paragraph->getLineHeight();
- GnomeSurface surface(widget);
-
- context->paragraph->draw(&surface, firstLine, (maxLines < lastLine)? maxLines : lastLine);
- }
-
- return TRUE;
-}
-
-GtkWidget *newSample(const gchar *fileName)
-{
- Context *context = new Context();
-
- context->width = 600;
- context->height = 400;
- context->paragraph = Paragraph::paragraphFactory(fileName, font, guiSupport);
-
- gchar *title = prettyTitle(fileName);
- GtkWidget *app = gnome_app_new("gnomeLayout", title);
-
- gtk_object_set_data(GTK_OBJECT(app), "context", context);
-
- gtk_window_set_default_size(GTK_WINDOW(app), 600 - 24, 400);
-
- gnome_app_create_menus_with_data(GNOME_APP(app), mainMenu, app);
-
- gtk_signal_connect(GTK_OBJECT(app), "delete_event",
- GTK_SIGNAL_FUNC(eventDelete), NULL);
-
- GtkWidget *area = gtk_drawing_area_new();
- gtk_object_set_data(GTK_OBJECT(app), "area", area);
-
- GtkStyle *style = gtk_style_copy(gtk_widget_get_style(area));
-
- for (int i = 0; i < 5; i += 1) {
- style->fg[i] = style->white;
- }
-
- gtk_widget_set_style(area, style);
-
- gnome_app_set_contents(GNOME_APP(app), area);
-
- gtk_signal_connect(GTK_OBJECT(area),
- "expose_event",
- GTK_SIGNAL_FUNC(eventExpose),
- context);
-
- gtk_signal_connect(GTK_OBJECT(area),
- "configure_event",
- GTK_SIGNAL_FUNC(eventConfigure),
- context);
-
- appList = g_slist_prepend(appList, app);
-
- g_free(title);
-
- return app;
-}
-
-void closeSample(GtkWidget *app)
-{
- Context *context = (Context *) gtk_object_get_data(GTK_OBJECT(app), "context");
-
- if (context->paragraph != NULL) {
- delete context->paragraph;
- }
-
- delete context;
-
- appList = g_slist_remove(appList, app);
-
- gtk_widget_destroy(app);
-
- if (appList == NULL) {
- gtk_main_quit();
- }
-}
-
-int main (int argc, char *argv[])
-{
- LEErrorCode fontStatus = LE_NO_ERROR;
- poptContext ptctx;
- GtkWidget *app;
-
- FT_Init_FreeType(&engine);
-
- gnome_init_with_popt_table("gnomelayout", "0.1", argc, argv, NULL, 0, &ptctx);
-
- guiSupport = new GnomeGUISupport();
- fontMap = new GnomeFontMap(engine, "FontMap.Gnome", 24, guiSupport, fontStatus);
- font = new ScriptCompositeFontInstance(fontMap);
-
- if (LE_FAILURE(fontStatus)) {
- FT_Done_FreeType(engine);
- return 1;
- }
-
- const char *defaultArgs[] = {"Sample.txt", NULL};
- const char **args = poptGetArgs(ptctx);
-
- if (args == NULL) {
- args = defaultArgs;
- }
-
- for (int i = 0; args[i] != NULL; i += 1) {
- app = newSample(args[i]);
-
- gtk_widget_show_all(app);
- }
-
- poptFreeContext(ptctx);
-
- gtk_main();
-
- delete font;
- delete guiSupport;
-
- FT_Done_FreeType(engine);
-
- exit(0);
-}