Cantitate/Preț
Produs

X und Motif: Einführung in die Programmierung des Motif-Toolkits und des X-Window-Systems

Autor Klaus Gottheil, Hermann-Josef Kaufmann, Thomas Kern, Rui Zhao
de Limba Germană Paperback – 22 dec 2011

Preț: 42056 lei

Preț vechi: 52569 lei
-20% Nou

Puncte Express: 631

Preț estimativ în valută:
8050 8656$ 6709£

Carte tipărită la comandă

Livrare economică 20 decembrie 24 - 03 ianuarie 25

Preluare comenzi: 021 569.72.76

Specificații

ISBN-13: 9783642773099
ISBN-10: 3642773095
Pagini: 704
Ilustrații: IV, 694 S.
Dimensiuni: 170 x 242 x 37 mm
Greutate: 1.1 kg
Ediția:Softcover reprint of the original 1st ed. 1992
Editura: Springer Berlin, Heidelberg
Colecția Springer
Locul publicării:Berlin, Heidelberg, Germany

Public țintă

Professional/practitioner

Cuprins

1 Einleitung.- 1.1 Das Motif-Toolkit.- 1.2 Lesehinweise.- 1.3 Weiterführende Literatur.- A Überblick und Konzepte.- 2 Fenster zur Welt.- 2.1 Wozu Windows?.- 2.2 Window-Historie.- 3 X-Windows machen’s möglich.- 3.1 Server und Client.- 3.2 Windows.- 3.3 Grafik im Raster.- 3.3.1 Grundlagen der Rastergrafik.- 3.3.2 Grafikausgaben mit der Xlib.- 3.4 Ereignisse werfen ihre Schatten voraus.- 3.5 Wunschlisten für Benutzer.- 3.6 Ein kleines Beispiel.- 4 Das Motif-Toolkit.- 4.1 Die Begriffswelt der Widgets.- 4.1.1 Klassen und Instanzen.- 4.1.2 Ein Baum von Klassen.- 4.1.3 Widgets, Windows und Shells.- 4.2 Widgets konkret.- 4.2.1 Das Hauptprogramm von xtime.- 4.2.2 Die Widgets erzeugen.- 4.2.3 Den Dialog organisieren.- 4.2.4 Der letzte Schliff.- B Programmieren mit Motif.- 5 Arbeiten mit X.- 5.1 Starten von X.- 5.1.1 Server, Clients und Displays.- 5.1.2 Die Maus.- 5.1.3 Das Programm xinit.- 5.1.4 Erweiterungen für .login und .cshrc.- 5.2 Terminals im Fenster.- 5.3 Schneiden und Kleben.- 5.4 Fenstergeometrie.- 5.5 Farben.- 5.6 Zeichensätze.- 5.7 Ressourcen.- 5.8 Ressourcen in den Server laden.- 5.9 Motif-Window-Manager.- 5.9.1 Starten des mwm.- 5.9.2 Mwm-Ressourcen.- 5.9.3 Menüs.- 5.9.4 Funktionen.- 5.9.5 Beispiel für ein Konfigurations-File.- 5.9.6 Im Brennpunkt: der Tastaturfokus.- 5.9.7 Icons selbstgemacht.- 6 Programmieren mit Xt und Motif.- 6.1 Hello World zum zweiten.- 6.1.1 Namenskonventionen und Bibliotheken.- 6.1.2 Include-Files.- 6.1.3 Initialisierung.- 6.1.4 Einfache Fehlerbehandlung.- 6.1.5 Keine Applikation ohne Shell.- 6.1.6 Das Label-Widget.- 6.1.7 Realisierung einer Widget-Hierarchie.- 6.1.8 Ereignisse ohne Ende: die Event-Schleife.- 6.2 Initialisierung mit Komfort.- 6.3 Der Default-Application-Context.- 6.4 Optionen.- 6.5 Wichtige Datentypen.- 6.6 Argumentlisten.- 6.7 Mehr über Argumentlisten.- 6.8 Erzeugen und Zerstören von Widgets.- 6.9 Callbacks.- 6.10 Variable Parameterlisten.- 7 Der Aufbau von Formularen.- 7.1 Das Beispiel „Software-Entwicklung”.- 7.1.1 Bedienung und Aufbau.- 7.1.2 Dialogobjekte und Layout-Widgets.- 7.1.3 Ein ganz normales Hauptprogramm.- 7.1.4 Ein einzeiliges Formular.- 7.1.5 Geschachtelte Formulare.- 7.1.6 Callback-Routinen für die Kommandos.- 7.2 Allgemeines zur Beschreibung von Widget-Klassen.- 7.3 Geometrie und Farben der Dialogobjekte.- 7.4 Das Label-Widget.- 7.4.1 Compound-Strings im Label-Widget.- 7.4.2 Bilder im Label-Widget.- 7.4.3 Ausrichten des Label-Inhaltes.- 7.4.4 Trennen mit einem Separator-Widget.- 7.5 PushButton- Widgets.- 7.5.1 Verschiedene Callback-Listen.- 7.5.2 Das Erscheinungsbild eines Push-Buttons.- 7.5.3 Ein Widget abschalten: Die Ressource XmNsensitive.- 7.5.4 Vorgefertigte Buttons.- 7.6 Der Toggle-Button.- 7.6.1 Zustand eines Toggle-Buttons.- 7.6.2 Zustandsänderungen im Programm.- 7.6.3 Markierungen und Radio-Buttons.- 7.7 Das Text-Widget.- 7.7.1 Bedienung eines Text-Widgets.- 7.7.2 Der Text im Widget.- 7.7.3 Das Aussehen des Text-Widgets.- 7.7.4 Die Callback-Routinen eines Text-Widgets.- 7.7.5 Ein einfacher Text-Editor.- 7.7.6 Text-Widgets mit Scrollbars.- 7.7.7 Text-Widgets für Fortgeschrittene.- 7.7.8 Eine spezielle Widget-Klasse für einzeilige Texte.- 7.8 Piazieren mit dem RowColumn-Widget.- 7.8.1 Die verschiedenen Varianten eines RowColumn-Widgets.- 7.8.2 Freies Piazieren im RowColumn-Widget.- 7.8.3 Kinder einheitlicher Größe.- 7.8.4 Kinder gleicher Höhe oder Breite.- 7.8.5 Einheitliche Ressourcen für die Kinder.- 7.9 Ein universelles Layout-Widget, das Form-Widget.- 7.9.1 Constraint-Ressourcen.- 7.9.2 Plazierung der oberen Kante eines Kindes.- 7.9.3 Kinder flexibler Größe.- 7.10 Form-Widgets im Einsatz.- 7.10.1 Ein Form-Widget anstelle eines RowColumn-Widgets.- 7.10.2 Dehnbare Eingabezeilen.- 7.10.3 Layout im Ressourcen-File.- 7.10.4 Tabellen mit dem Form-Widget.- 7.11 Die Superklassen der Layout-Widgets.- 7.11.1 Layout-Widgets im Motif-Toolkit.- 7.11.2 Verschiedene Maßeinheiten.- 7.11.3 Schatten am Layout-Widget.- 8 Formulare im Zusammenspiel.- 8.1 Shell-Widgets als „Tor“zum Window-Manager.- 8.1.1 Ende nur auf Bestätigung.- 8.1.2 Dialoghierarchie.- 8.1.3 Shell-Hierarchie und Popup-Shells.- 8.1.4 Klassenhierarchie der Shell-Widgets.- 8.1.5 Zusammenspiel mit dem Window-Manager.- 8.1.6 Spezielle Ressourcen für den Fensterrahmen.- 8.1.7 Tastaturfokus und Tab-Groups.- 8.1.8 Begriffe.- 8.2 Meldungen für den Benutzer.- 8.2.1 Die Bestandteile einer Message-Box.- 8.2.2 Verschiedene Formen einer Message-Box.- 8.3 Das Bulletin-Board.- 8.3.1 Das Bulletin-Board als Metaklasse für Layout-Widgets.- 8.3.2 Bulletin-Boards und Shell-Widgets.- 8.3.3 Modale Formulare.- 8.3.4 Rahmen, Buttons und Fonts.- 8.4 Mehrere Formulare mit gleichem Aufbau.- 8.4.1 Interaktive Erzeugung eines Formulars.- 8.4.2 Das Formular und die Formulardatenstruktur.- 8.4.3 Eine Shell wird zerstört.- 8.4.4 Hierarchien.- 8.4.5 Mehrere Application-Shells.- 8.5 Dateien auswählen.- 8.5.1 Zur Bedienung einer File-Selection-Box.- 8.5.2 Die Widget-Klasse XmFileSelectionBox.- 8.5.3 Eine File-Selection-Box für jedes Arbeitsformular.- 8.5.4 Toggle-Buttons zur Steuerung des Datenflusses.- 8.6 Strings auswählen.- 8.6.1 Die Widget-Klasse XmSelectionBox.- 8.6.2 String-Listen und Callbacks der Selection-Box.- 8.6.3 Anwendungen einer Selection-Box.- 8.6.4 Die Work-Area einer Selection-Box.- 8.6.5 Prompt-Dialog-Box als leere Dialogbox.- 8.6.6 Die Widget-Klasse XmList.- 8.6.7 Verschiedene Selektionsarten.- 8.6.8 Ein List-Widget mit Scrollbars.- 8.7 Das Scrollbar-Widget.- 8.7.1 Widgets mit dem Scrollbar verschieben.- 8.7.2 Eine universelle Zeichenfläche.- 8.7.3 Die Länge des Balkens.- 8.7.4 Ein Widget verschieben.- 8.7.5 Andere Widgets mit Scrollbars.- 8.7.6 Weitere Ressourcen eines Scrollbars.- 8.7.7 Zahlen auf einer Skala darstellen.- 8.8 Aspekte der Fehlerbehandlung.- 8.8.1 Vorsorge gegen Fehlbedienung.- 8.8.2 Fehler im Text-Widget.- 8.8.3 Jede Änderung im Text prüfen.- 8.8.4 Fehlermeldungen aus dem Ressourcen-File.- 8.8.5 X-Toolkit- und Xlib-Fehler.- 8.8.6 Die lokale Event-Schleife — einfach, aber unsauber.- 8.9 Die letzte Version des Programms soft.- 8.10 Auf der Suche nach Widgets und Ressourcen.- 8.10.1 Die richtige Widget-Klasse.- 8.10.2 Die Ressourcen für den gewünschten Effekt.- 8.10.3 Widgets ohne Window: Gadgets.- 9 Grafik.- 9.1 Der Grafik-Testrahmen grtest.- 9.2 Farben.- 9.2.1 Was kann der Bildschirm?.- 9.2.2 Farben erfragen.- 9.2.3 Öffentliche Einträge in der Farbtabelle.- 9.2.4 Private Einträge in der Farbtabelle.- 9.2.5 Einträge in der Farbtabelle freigeben.- 9.2.6 Farbtabellen einrichten.- 9.3 Muster.- 9.3.1 Pixmaps erzeugen und zerstören.- 9.3.2 Pixel-Daten in der Applikation bearbeiten.- 9.3.3 Bitmap-Files.- 9.4 Buchstaben.- 9.4.1 Fonts suchen.- 9.4.2 Fonts laden und wieder freigeben.- 9.4.3 Informationen über Fonts einholen.- 9.5 Grafikkontexte.- 9.5.1 Grafikkontexte verwalten.- 9.5.2 Attribute von allgemeinem Interesse.- 9.6 Die Grafikressourcen für grtest.- 9.7 Grafik ausgeben.- 9.7.1 Linien zeichnen.- 9.7.2 Flächen füllen.- 9.7.3 Text schreiben.- 9.7.4 Pixmaps ausgeben.- 9.7.5 Flächen löschen.- 9.8 Die Grafikprimitiven für grtest.- 9.9 Der Cursor.- 10 Grafikdaten verwalten.- 10.1 Grafikdaten in Listenform.- 10.2 Grafikdaten als Objekte.- 10.2.1 Objektorientierte Programmierung.- 10.2.2 Objekte und Klassen in C.- 10.2.3 Die grafische Datenstruktur.- 11 Ereignisse intim.- 11.1 Datentypen für Events.- 11.2 Events auswählen.- 11.3 Event-Typen im Detail.- 11.3.1 Tastatur- und Maus-Events.- 11.3.2 Window-Eintritt und-Austritt.- 11.3.3 Expose-Events.- 11.3.4 Tastaturfokus.- 11.3.5 Window-Änderungen.- 11.3.6 Sonstige Events.- 11.4 Der Grafikeditor gredi.- 11.5 Events selbst behandeln.- 11.6 gredi mit Event-Handlern.- 11.7 Actions.- 11.7.1 Action-Routinen bekannt machen.- 11.7.2 Translation-Tables in der Applikation ändern.- 11.7.3 Eigene Translation-Tables schreiben.- 11.7.4 Tasten umcodieren.- 11.8 gredi mit Action-Routinen.- 11.9 Eingaben beschleunigen.- 12 Menüs à la carte.- 12.1 Pulldown-Menüs.- 12.1.1 Pulldown-Menüs im Detail.- 12.1.2 Ein einfaches Pulldown-Menü.- 12.1.3 Hierarchische Pulldown-Menüs.- 12.2 Popup-Menüs.- 12.2.1 Erzeugung einer Popup-Pane.- 12.2.2 Testrahmen für Popup-Menüs.- 12.3 Option-Menüs.- 12.3.1 Der Aufbau eines Option-Menüs.- 12.3.2 Ein Beispiel für das Option-Menü.- 12.4 Beschleunigung.- 12.4.1 Mnemonics.- 12.4.2 Accelerators.- 13 Prozeßkommunikation.- 13.1 Grundlagen.- 13.2 Atome speichern Namen.- 13.3 Fenster haben Properties.- 13.3.1 Properties lesen.- 13.3.2 Properties erzeugen und verändern.- 13.3.3 Portabilitätsprobleme bei Strukturen.- 13.3.4 Properties löschen.- 13.3.5 Properties und Events.- 13.3.6 Vordefinierte Property-Namen.- 13.4 Kommunizieren mit Events.- 13.4.1 Properties und ClientMessage-Events im Zusammenspiel.- 13.5 Selektionen.- 13.6 Das Motif-Clipboard.- 13.6.1 Die Clipboard-Schnittstelle.- 13.6.2 Daten auf das Clipboard kopieren.- 13.6.3 Daten vom Clipboard lesen.- 13.6.4 Verschiedene Formate.- 13.6.5 Große Datenmengen.- 13.7 Kommunikation mit dem Window-Manager.- 13.7.1 Properties für den Window-Manager.- 13.7.2 Ein Property für Protokolle.- 13.7.3 Window-Manager-Protokolle am Beispiel.- 14 Spezielle Callbacks.- 14.1 Callback-Routinen mit Verzögerung.- 14.2 Callbacks an File-Descriptoren.- 14.3 Callbacks für die Wartezeiten.- C Programmierung von Widget-Klassen.- 15 Klassengesellschaft.- 15.1 Die Klassenhierarchie von Motif.- 15.2 Der Aufbau einer Widget-Klasse.- 16 Die Basisklassen der Toolkit-Intrinsics.- 16.1 Die Klasse Core.- 16.1.1 Der Klassen-Record von Core.- 16.1.2 Der Instanzen-Record von Core.- 16.2 Die Klasse Composite.- 16.2.1 Der Klassen-Record von Composite.- 16.2.2 Der Instanzen-Record von Composite.- 16.3 Die Klasse Constraint.- 16.3.1 Der Klassen-Record von Constraint.- 16.3.2 Der Instanzen-Record von Constraint.- 16.4 Abarbeitung der Felder des Klassen-Records.- 16.5 Das Ressourcen-Array eines Widgets.- 16.6 Die Funktionen einer Widget-Klasse.- 16.6.1 Die Funktion initiaiize().- 16.6.2 Die Funktion resize().- 16.6.3 Die Funktion expose().- 16.6.4 Die Funktion set_values().- 16.6.5 Die Funktion destroy().- 16.7 Klassen- und Instanzenzeiger.- 17 Die Klasse XmIconButton.- 17.1 IconB.h — das öffentliche Include-File.- 17.2 IconBP.h — das private Include-File.- 17.3 IconB.c — das Source-File.- 17.3.1 Das Ressourcen-Array.- 17.3.2 Initialisierung des Klassen-Records.- 17.3.3 Funktionen des Icon-Buttons.- Anhang: Quelltexte.- A.1 Textausgaben in Callback-Routinen mit langer Ausführungszeit.- A.2 Benutzungsoberfläche für Bourne-Shells.

Recenzii

"...der Einstieg ins Thema ist sehr steil, doch die Verfasser haben sich bemüht und die Didaktik ist ihnen gut gelungen.... man findet das Wichtigste über X. Ein ausgezeichnetes Buch."
(mc)

"Insgesamt ist der Text leicht lesbar, wozu auch der ungewöhnlich lockere Stil beiträgt.... eine rundum gelungene Einführung in die Programmierung dreier Software-Systeme."
(iX)

"Das Buch gefällt durch seinen klaren und übersichtlichen Aufbau. Die zahlreichen Programmierbeispiele und praktischen Hinweise hinterlassen einen sehr guten Eindruck. Für eine Einführung in das Motif-Toolkit ist das Buch daher sehr zu empfehlen."
(HMD)