Da ich mich z.Zt. überwinden kann und Weihnachten kommt und überhaupt und so ...
Der Linux-API-Viewer wurde überarbeitet.
Hierzu vielen Dank an unsere Vera für den Anstoß, viele Ideen und fleißige Beteiligung bei der Umsetzung.
Neuerungen - im Groben:
- Drag&Drop der Codes anhand der TreeGadget-Einträge zu PureBasic.
- Datenbank (xml) und Library bzw. Viewer können jetzt beliebig platziert sein.
- Einiges wurde konfigurierbar, per Settings oder/und Tastaturcodes 'on-the-fly'
- 'An'-programmierte Code-Markierung
- zoombare Codedarstellung
- vorbereitete und innerhalb der Oberfläche (meinerseits dilettantisch) umgesetzte Mehrsprachigkeit
- integrierte Hilfe (noch ausbaufähig und übersetzbar)
- zusätzlich verwendbar für eigene Libraries (selbes xml-Grundformat erforderlich)
- und viel wenig Auffälliges (Schnellumschaltung: Sprache, Zeilenumbruch, ...)
----
Die API-Library hat ebenfalls ein Update erhalten ...
Einige bisherige API-Codes wurden überarbeitet und/oder bezüglich Lauffähigkeit gtk2/gtk3 gekennzeichnet.
Neu hinzugekommen sind (ebenfalls wieder als Paket komplett downloadbar) ...
ButtonGadget: ColorButton-widget hinzufügen [gtk3]
ButtonGadget: ColorButton-widget m. Alpha-Kanal hinzufügen [gtk3]
ButtonGadget: Icon (geladen) zu Button hinzufügen
ButtonGadget: Icon (eingebettet) zu Button hinzufügen
ButtonGadget: Icondarstellung auf Buttons, Systemeinstellung abfragen
ButtonGadget: Timeout für Repeat-Buttons ändern
Dialog: System-'about'-Dialog, modal, mit eingebettetem Icon
Dialog: System-'about'-Dialog, modal, alle Features [Gtk3]
Dialog: System-'about'-Dialog, non modal, alle Features [Gtk3]
Dialog: System-RecentFileChooser-Dialog öffnen, modal
EditorGadget: Cursorposition: Iter und Marker abfragen
EditorGadget: Cursorposition als Zeichen-Offset abfragen
EditorGadget: Popup-Erweiterung des Systempopups bei Rechtsklick
EditorGadget: Scrollen zur ersten Zeile (per Marker)
EditorGadget: Scrollen zur letzten Zeile (per Marker)
EditorGadget: Scrollen zur letzten Zeile (per Adjustment)
EditorGadget: Scrollen, zeilenweise (per Adjustment)
EditorGadget: Scrollen zu gesetztem Text-Marker
EditorGadget: Selektion des ganzen Textes (per Signal)
EditorGadget: Selektion des ganzen Textes (per Text-Iter)
EditorGadget: TAB-Fokus-Weiterleitung setzen
EditorGadget: Zoomen des Textes mit Mausrad [gtk2]
EditorGadget: Zoomen des Textes mit Mausrad [gtk3]
Gadget: Animations-widget (gtk) hinzufügen
Gadget: Animation, eingebettet, als ImageGadget, o. Dekoder hinzufügen
Gadget: Animation, geladen, als ImageGadget, o. Dekoder hinzufügen
Gadget: Bild/Image, eingebettet, auf alle unterstütz. Gadgets, o. Dekoder hinzufügen
Gadget: Bild/Image, geladen, auf alle unterstütz. Gadgets, o. Dekoder hinzufügen
Gadget: Bild/Icon für alle PB-Gadgets aus Def.-Icon-Theme, o. Dekoder
Gadget: Fokussierbarkeit per TAB/Cursorpfeile setzen
Gadget: gtk-Typ des Widgets abfragen
Gadget: gtk-Typ des Widgets-Parent abfragen
Gadget: gtk-Typ-Struktur von Gadget bis Window abfragen
Gadget: gtk-Typ-Struktur von Gadget bis Window abfragen - großes Beispiel
Gadget: GType-Definition - Deklaration/Liste
Gadget: GType-Definition - Deklaration/Liste mit Anwendung
Gadget: Image-widget (gtk) 'stock' hinzufügen
Gadget: Neuzeichnen (Redraw/Update) erzwingen
Gadget: 'Paste' (Einfügen) per Mittelklick generell ein/aus [gtk3]
Gadget: RecentFileChooser-widget hinzufügen
Gadget: SearchEntry widget einfügen [gtk3]
Gadget: Tooltip dynamisch anlegen
Gadget: Tooltip mit 'Stock'-Icon anlegen
Gadget: Tooltips generell (de-) aktivieren
Gadget: Tooltip-Text abfragen
Gadget: Tooltip-Timeout setzen (Öffnen)
Gadget: Transparenz setzen
ListIconGadget: Scroll-Event (Signal), nur Mausrad hinzufügen [gtk3]
ListIconGadget: Spaltenanzahl abfragen, kürzer [Gtk3]
ListIconGadget: Spalteninhalt ausrichten, Vers. 2 [Gtk3]
ListIconGadget: Tooltips auf einzelnen Items anzeigen
ListIconGadget: Tooltips auf einzelnen Zellen anzeigen
ListViewGadget: Tooltips auf einzelnen Items anzeigen
Menu&Popup: Menueintrag, 'Stock'-Image per PB-Id auf Item hinzufügen
Menu&Popup: Menueintrag, 'Stock'-Image per Text (label) auf Item hinzufügen
Menu&Popup: Menueintrag per PB-Id suchen und verstecken
Menu&Popup: Menueintrag per Label suchen und verstecken
Menu&Popup: Menueintrag per PB-Id suchen und löschen
Menu&Popup: Menueintrag per Label suchen und löschen
Menu&Popup: MenuButton-Widget einfügen [gtk3]
Menu&Popup: Popup-Eintrag, 'Stock'-Image per PB-Id auf Item hinzufügen
Menu&Popup: Popup-Eintrag, 'Stock'-Image per Text (label) auf Item hinzufügen
Menu&Popup: Popupeintrag per PB-Id suchen und verstecken
Menu&Popup: Popupeintrag per Label suchen und verstecken
Menu&Popup: Popupeintrag per PB-Id suchen und löschen
Menu&Popup: Popupeintrag per Label suchen und löschen
Menu&Popup: 'RecentFiles', privat auf SubMenu
Menu&Popup: 'RecentFiles', privat auf Popup
Menu&Popup: 'RecentFiles', privat, Menu/Popup, multi - Demo
Menu&Popup: 'RecentFiles', System, autom. als SubMenu
Misc: Applikationsnamen (lesbar) setzen
Misc: Event-Schleife leeren (auf gtk-Ebene)
Misc: Desktop - Notify (Benachrichtigung) anlegen (einfach)
Misc: Desktop - Notify (Benachrichtigung) anlegen
Misc: Desktop - Aktuellen Index abfragen
Misc: Desktop - Aktuellen Namen abfragen
Misc: Desktop - Auf Desktop mit Index umschalten
Misc: Desktop - Windowmanager-Namen abfragen (wmctrl)
Misc: Desktop - Windowmanager-Namen abfragen (x11)
Misc: Desktop - Index aus Fenstertitel abfragen
Misc: Desktops - Anzahl abfragen
Misc: Desktops - Liste aller Desktops abfragen
Misc: Desktops - Liste aller Fenster aller Desktops abfragen
Misc: Directory - Monitor zur Überwachung
Misc: File - Monitor zur Überwachung
Misc: Filemanager - öffnen mit aktuellem Verzeichnis
Misc: Filemanager - öffnen mit Haupt-Verzeichnis
Misc: Filemanager - öffnen mit bestimmtem Verzeichnis
Misc: Filemanager - öffnen mit Home-Verzeichnis
Misc: Icon - Bildtypen, systemunterstützt (o.Dekoder) als Demo
Misc: Icon - Iconviewer für nachfolgende Codes fürs Default-Icon-Theme als Demo
Misc: Icon - Exemplarischen IconNamen aus dem Default-Icon-Theme auslesen
Misc: Icon - Icongrößen eines IconNamen aus Default-Icon-Theme auslesen
Misc: Icon - IconNamen-Liste für Kontext/Alle aus dem Default-Icon-Theme auslesen
Misc: Icon - Kontext- (Zusammenstellungs-) Liste aus Default-Icon-Theme auslesen
Misc: Icon - Pfad aus IconNamen und -Größe aus Default-Icon-Theme auslesen
Misc: Icon - Pfad-Liste für Icons aus dem Default-Icon-Theme auslesen"
Misc: Keyboard - Num/CapsLock/Statekey-Monitor per gdk [Gtk3]
Misc: 'RecentFiles', System, Infos holen, Beispiel
Misc: System - aktuelles Gtk-Thema abfragen
Misc: System - Antialias-Einstellung abfragen
Misc: System - Applikations-spezifischen Zeichensatz hinzufügen
Misc: System - dpi-Einstellung abfragen
Misc: System - Gtk-Versionen abfragen
Misc: System - aktuelle Sprache abfragen, Gtk
Misc: System - Gtk-Zeichensatz abfragen
Misc: System - Gtk-Zeichensatznamen abfragen
Misc: System - Gtk-Zeichensatzgröße abfragen
Misc: System - Gtk-Error-Bell-Status abfragen
Misc: System - Gtk-Error-Bell-Status setzen
Misc: System - Laufwerk-Info abfragen
Misc: System - Prozess-ID per Namen abfragen
Misc: System - Zeichensatz-Hinting abfragen
Misc: Zeichen identifizieren/konvertieren - Linux Funktionssammlung
Misc: Zeigt Group-Names des aktuellen Users
Misc: Zeigt die User in einer Group
ProgressBarGadget: Invertierte Richtung [Gtk3]
Requester: MessageRequester - mit OS-Icon + Fenstertitel, modal
Requester: MessageRequester - mit OS-Icon + Fenstertitel, non modal
StringGadget: Autoselektierung bei Fokus (generell)
StringGadget: CapsLock-Warnung im Passwort-Modus aus/ein
StringGadget: Clipboard - sichern vorm Einfügen (Paste)
StringGadget: Editierbar per Fokussierbarkeit setzen
StringGadget: Icons, selektierbar ergänzen [Gtk2+Gtk3]
StringGadget: Platzhalter bei leerem String [Gtk3]
StringGadget: Popup-Erweiterung des Systempopups bei Rechtsklick
StringGadget: Textlänge Maximum setzen und abfragen
StringGadget: Text-Scroll-Offset in Pixel abfragen
StringGadget: Überschreibe-/Einfügemodus wählen
TextGadget: Ausrichtung für mehrzeiliges TextGadget
TextGadget: Link mit Adresse in TextGadget hinzufügen
TextGadget: Links mit Adressen in TextGadget hinzufügen
TextGadget: Markup (Effekte) für TextGadget
TextGadget: Tastaturkürzel (auto) für fremdes Gadget hinzufügen.
TreeGadget: PB-Item aus Path-String selektieren
TreeGadget: PB-Item unter Maus abfragen (Hover)
TreeGadget: PB-Index (item) aus Path-String abfragen
TreeGadget: Path-Tiefe Maximum abfragen
TreeGadget: Path-String aus PB-Index (item) abfragen
TreeGadget: Suche nativ
TreeGadget: Tooltips auf einzelnen Items anzeigen
Window: Aufmerksam machen auf Fenster
Window: Aufmerksam machen auf Fenster (Gdk)
Window: 'Display'-Daten unter Fenster abfragen
Window: GdkWindow von Window-Index ermitteln. Vers. 2 [Gtk2+Gtk3]
Window: Gtk-Window von GdkWindow ermitteln
Window: Gtk-Typ abfragen
Window: 'Modal' setzen
Window: 'Present' setzen
Window: 'Screen'-Daten unter Fenster abfragen
Window: Fenster 'shade' manuell ein/aus
Window: Fenster 'taskbar'-Eintrag verhindern
Window: Fenster 'taskbar'-Eintrag verhindern, Vers. 2
Window: Fenster 'pager' Eintrag verhindern
Window: Fenster 'pager' Eintrag verhindern, Vers. 2
Window: Fokus auf fremdes Fenster
Window: Rücksetzen der Fensterkoordinaten
Window: Titel per gdk setzen
Window: Titel per gtk setzen
Window: Transparenz setzen [>=Gtk3.8]
Window: Update (Refresh/Redraw/Neuzeichnen) erzwingen
Window: Über allen Fenstern halten
Window: Über eigenem 'parent'-Fenster halten
Window: Verschieben durch Drag auf Fensterhintergrund
-----
Die Codes sind häufig wieder etwas verspielter, um die Anwendung oder zusätzliche themenrelevante API-Befehle vorzustellen!
Einige Codes - insbes. in
Menu&Popup sind auf den selben Grundcodes basierende Abkömmlinge für bestimmte Zwecke. Also, es sieht nach mehr aus als es wirklich ist
Und noch was zu den Codes in Menu&Popup:
Es ist (leider) recht aufwendig die API-widgets zu den PB-Menüs/Popups zu ermitteln - ich hab keine einfachere und einigermaße sicheren Methode gefunden, als sie auf diese Weise zu suchen.
All diese Codes könnten deutlich verkürzt werden, wenn hier PureBasic in Kommandos wie MenuItem(), ToolBarStandardButton(), usw. die ungenutzten Rückgabewerte dafür verwenden würde, die dem PB eh bekannten API-Adressen der zugehörigen Widgets zurückzugeben.
Vielleicht raffe ich mich mal auf und stelle für die
Feature Requests and Wishlists diesbezüglich was zusammen und schau recht lieb.
Dann happy testing und gnadenreiche Bugreports.
Viele Grüße und ein schönes Weihnachtsfest, Charly
PS: Bei Überschreiben des alten Viewers oder Installation des Neuen im selben Verzeichnis, bitte die alte ini-Datei löschen/umbenennen etc.