Aktuelle Zeit: 24.09.2018 23:29

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 114 Beiträge ]  Gehe zu Seite Vorherige  1 ... 6, 7, 8, 9, 10, 11, 12  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: DialogDesign0R V1.16
BeitragVerfasst: 28.03.2018 21:25 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
V1.17
  • Fehler beim Drag&Drop behoben (Parents konnten u.U. in eigene Clients verschoben werden, das geht natürlich gar nicht!)
  • Die Markierungen folgen nun Resizeoperationen
  • Den Fehler beim Splitter behoben
  • Vorbereitet für den Feature Request von hjf*

*Ich habe im Moment wenig Zeit, da muss ich etwas mehr Gehirnschmalz reinstecken, ich denke ich mache das per Drag&Drop vom Explorer.
Also einfach eine Dialog.xml auf das TreeGadget droppen und die enthaltenen Windows werden zusätzlich eingefügt.
Muss dann aber auch darauf achten, dass keine IDs und/oder Namen doppelt vorkommen.

So mal die Idee, Drag&Drop habe ich auch schon eingebaut, nur die Dateien verarbeite ich noch nicht.

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.17
BeitragVerfasst: 29.03.2018 11:00 
Offline

Registriert: 12.02.2014 20:02
Ich habe den "dd.xml" ein bissl verändert, als Vorschlag versteht sich!

Es ist unschön, wenn einzelne Props, z.B. die ID, der Name oder auch
der Text im DD nicht vollständig zu sehen sind. Gerade die ID
kann lang werden, z.B. "#Win_Main_Spl_Props_Frm_Close_Btn_Cancel". Deshalb sind für die
drei die Felder der Gridbox angepasst.

Code:
<?xml version="1.0" encoding="UTF-8"?>

<dialogs>
  <window flags="#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_Invisible | #PB_Window_ScreenCentered" minheight="700" minwidth="600" name="Window_Main">
    <vbox expand="item:2">
      <!--Buttonbar etc.-->
      <hbox align="center" expand="no">
        <buttonimage width="20" height="20" name="newfile" onevent="OnEventNewDialog()"/>
        <buttonimage width="20" height="20" name="loadfile" onevent="OnEventLoadDialog()"/>
        <buttonimage width="20" height="20" name="savefile" onevent="OnEventSaveDialog()"/>
        <buttonimage width="20" height="20" name="savefileas" onevent="OnEventSaveDialog()"/>
        <empty width="35"/>
        <buttonimage width="20" height="20" name="showall" onevent="OnClickShowAll()"/>
        <buttonimage width="20" height="20" name="hideall" onevent="OnClickHideAll()"/>
        <empty width="10"/>
        <text text="Dialog Definition:"/>
        <vbox>
          <combobox width="100" name="definition" onevent="OnChangeDef()"/>
          <empty/>
        </vbox>
        <text text="Dialog Refresh Time:"/>
        <trackbar width="100" min="1" max="10" flags="#PB_TrackBar_Ticks" value="2" name="refreshdelay" onevent="OnRefreshDelay()"/>
        <text text="1000 ms" name="refreshtime"/>
      </hbox>
      <hbox expand="yes">
        <splitter flags="#PB_Splitter_Vertical | #PB_Splitter_Separator" name="splitter">
          <!--Left, Objects-->
          <frame text="Objects:">
            <tree flags="#PB_Tree_AlwaysShowSelection" name="tree_objects" onchange="OnObjectTreeClick()" ondragstart="OnObjectTreeDrag()" onrightclick="OnObjectTreeRClick()"/>
          </frame>
          <!--Right, Props-->
          <vbox expand="item:4">
            <!--Props-->
            <frame text="Properties">
              <gridbox columns="4" colexpand="item:4" rowexpand="no">
                <text text="ID:"/>
                <string colspan="3" name="_id" onchange="OnStringChanged()"/>
                <text text="Name:"/>
                <string colspan="3" name="_name" onchange="OnStringChanged()"/>
                <text text="Text:"/>
                <string colspan="3" name="text" onchange="OnStringChanged()"/>
                <text text="Width:"/>
                <string width="80" name="width" onchange="OnStringChanged()"/>
                <frame colspan="2" text="Flags" rowspan="7">
                  <tree flags="#PB_Tree_NoLines | #PB_Tree_CheckBoxes" name="flags" onleftclick="OnTreeClick()"/>
                </frame>
                <text text="Height:"/>
                <string name="height" onchange="OnStringChanged()"/>
                <text text="Min:"/>
                <string name="min" onchange="OnStringChanged()"/>
                <text text="Max:"/>
                <string name="max" onchange="OnStringChanged()"/>
                <text text="Value:"/>
                <string name="value" onchange="OnStringChanged()"/>
                <text text="Group:"/>
                <string name="group" onchange="OnStringChanged()"/>
                <text text="Page:"/>
                <string name="page" onchange="onstringchanged()"/>
                <checkbox text="Invisible" name="invisible" onevent="OnCheckBoxChanged()"/>
                <frame text="Event Procedures" colspan="3" rowspan="3">
                  <vbox>
                    <combobox name="onevents" onchange="OnComboBoxChanged()"/>
                    <string name="onevent_proc" onchange="OnStringChanged()"/>
                  </vbox>
                </frame>
                <checkbox text="Disabled" name="disabled" onevent="OnCheckBoxChanged()"/>
                <empty/>
                <hbox colspan="2" align="" expand="no">
                  <buttonimage width="24" height="24" name="userattributes" onevent="OnUserAttributes()"/>
                  <buttonimage width="24" height="24" name="refresh" onevent="OnClickRefresh()"/>
                  <buttonimage width="24" height="24" name="move_up" onevent="OnMenuMoveUp()"/>
                  <buttonimage width="24" height="24" name="move_down" onevent="OnMenuMoveDown()"/>
                </hbox>
              </gridbox>
            </frame>
            <!--Spec. Props-->
            <frame text="Special Properties">
              <multibox>
                <container invisible="yes" name="container_window">
                  <gridbox columns="4">
                    <text text="MinWidth:"/>
                    <string name="minwidth" onchange="OnStringChanged()"/>
                    <text text="MinHeight:"/>
                    <string name="minheight" onchange="OnStringChanged()"/>
                    <text text="MaxWidth:"/>
                    <string name="maxwidth" onchange="OnStringChanged()"/>
                    <text text="MaxHeight:"/>
                    <string name="maxheight" onchange="OnStringChanged()"/>
                  </gridbox>
                </container>
                <container invisible="yes" name="container_boxes">
                  <gridbox columns="4">
                    <text text="Spacing:"/>
                    <string name="spacing" onchange="OnStringChanged()"/>
                    <text text="Align:"/>
                    <combobox name="alignbox" onchange="OnComboBoxChanged()"/>
                    <text text="Expand:"/>
                    <combobox name="expandbox" onchange="OnComboBoxChanged()"/>
                    <text text="Item:"/>
                    <string name="expandboxitem" onchange="OnStringChanged()"/>
                  </gridbox>
                </container>
                <container invisible="yes" name="container_gridbox">
                  <gridbox columns="4" invisible="yes">
                    <text text="Columns:"/>
                    <string name="columns" onchange="OnStringChanged()"/>
                    <text text="Colspacing:"/>
                    <string name="colspacing" onchange="OnStringChanged()"/>
                    <empty colspan="2"/>
                    <text text="Rowspacing:"/>
                    <string name="rowspacing" onchange="OnStringChanged()"/>
                    <text text="Colexpand:"/>
                    <combobox name="colexpand" onchange="OnComboBoxChanged()"/>
                    <text text="Item:"/>
                    <string name="colexpanditem" onchange="OnStringChanged()"/>
                    <text text="Rowexpand:"/>
                    <combobox name="rowexpand" onchange="OnComboBoxChanged()"/>
                    <text text="Item:"/>
                    <string name="rowexpanditem" onchange="OnStringChanged()"/>
                  </gridbox>
                </container>
                <container invisible="yes" name="container_multibox"/>
                <container invisible="yes" name="container_singlebox">
                  <gridbox columns="4" colexpand="yes" rowexpand="no">
                    <text text="Margin:"/>
                    <combobox width="100" name="margincombo" onchange="OnComboBoxChanged()"/>
                    <text text="Value:"/>
                    <string width="120" name="marginext" onchange="OnStringChanged()"/>
                    <text text="Expand:"/>
                    <combobox name="expandsingle" onchange="OnComboBoxChanged()"/>
                    <text text="Align:"/>
                    <tree flags="#PB_Tree_NoButtons | #PB_Tree_CheckBoxes" rowspan="3" width="120" name="alignsingle" onleftclick="OnTreeClick()"/>
                    <text text="ExpWidth:"/>
                    <string name="expandwidth" onchange="OnStringChanged()"/>
                    <empty/>
                    <text text="ExpHeight:"/>
                    <string name="expandheight" onchange="OnStringChanged()"/>
                  </gridbox>
                </container>
                <container invisible="yes" name="container_splitter">
                  <gridbox columns="4">
                    <text text="FirstMin:"/>
                    <string name="firstmin" onchange="OnStringChanged()"/>
                    <text text="SecondMin:"/>
                    <string name="secondmin" onchange="OnStringChanged()"/>
                  </gridbox>
                </container>
                <container invisible="yes" name="container_scrollarea">
                  <gridbox columns="4">
                    <text text="Scrolling:"/>
                    <combobox name="scrolling" onchange="oncomboboxchanged()"/>
                    <empty colspan="2"/>
                    <text text="InnerHeight:"/>
                    <string name="innerheight" onchange="onstringchanged()"/>
                    <text text="InnerWidth:"/>
                    <string name="innerwidth" onchange="onstringchanged()"/>
                  </gridbox>
                </container>
                <container name="container_comment">
                  <hbox expand="item:2">
                    <text text="Comment:"/>
                    <editor name="comment" onevent="OnStringChanged()"/>
                  </hbox>
                </container>
              </multibox>
            </frame>
            <!--Gridbox Childs-->
            <frame text="GridBox Childs">
              <hbox expand="yes" alignbox="top/left">
                <text text="Colspan:"/>
                <string name="colspan" onchange="OnStringChanged()"/>
                <text text="Rowspan:"/>
                <string name="rowspan" onchange="OnStringChanged()"/>
              </hbox>
            </frame>
            <!--Log-->
            <frame text="Log:">
              <editor flags="#PB_Editor_ReadOnly" height="60" name="log"/>
            </frame>
          </vbox>
        </splitter>
      </hbox>
    </vbox>
  </window>
  <window flags="#PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_Invisible | #PB_Window_Tool | #PB_Window_WindowCentered" minwidth="400" text="Special Attributes" name="Win_Attrib">
    <hbox expand="item:2">
      <frame text="User defined attributes" rowspan="8" width="160" height="180">
        <listview name="userattribs" onleftclick="OnUserAttribChange()"/>
      </frame>
      <vbox align="" expand="no">
        <hbox expand="item:2">
          <text text="Name:"/>
          <string name="attrib_name" onchange="OnChangeAttribName()"/>
        </hbox>
        <hbox expand="item:2">
          <text text="Value:"/>
          <string name="attrib_value" onchange="OnChangeAttribValue()"/>
        </hbox>
        <hbox align="" expand="no">
          <buttonimage width="24" height="24" name="attrib_add" onevent="OnClickAttribAdd()"/>
          <buttonimage width="24" height="24" name="attrib_del" onevent="OnClickAttribDel()"/>
        </hbox>
      </vbox>
    </hbox>
  </window>
</dialogs>

Ich verstehe nicht, warum die rechte Seite des Splitters beim
verkleinern des Fensters "rechts untergeschoben" wird, ab einer
bestimmten Fensterbreite. Mit dem Splitter laßt sie sich aber verkleinern.

Beim DragnDrop im Tree gibts noch ein anderes Problem:
Wenn sich z.B. in einem Frame eine Gridbox befindet, die viele Gadgets enthält, dann
ist diese Konstruktion im Tree nicht komplett sichtbar.

Will man nun zum Einfügen einer SingleBox Teile des Tree in ein temoräres Window Draggen,
dann ist dieses nicht sichtbar, weil es sich ganz unten im Tree befindet. Zuklappen geht hier
nur bedingt.

Ein bissl würde hier das Verschieben des temp-Windows im Tree nach Oben helfen, wesser wäre
aber der Tree würde beim Draggen scrollen bis das temp-Window sichtbar wird.
Eine Copy/Paste für Gadgads würde auch helfen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.17
BeitragVerfasst: 29.03.2018 12:51 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Das SplitterGadget in PB ist ziemlich schlecht und verhält sich wie es gerade will.
Dieses alternative, auf Canvas basierende Ding, das Bisonte irgendwo verlinkt hatte, finde ich viel zu aufwändig für diesen Anwendungsfall und werde ich sicherlich nicht einbauen.
Wir müssen also mit diesem Mistding leben, bis es evtl. mal in irgendeiner PB Version verbessert wird.

Dass der Tree nicht scrollt beim draggen hat mich auch schon genervt, das ist aber erst mal nichts, was ich angreifen werde.
Ich müsste mich wieder mit GTK-Irrsinn beschäftigen, damit das unter Linux dann auch zuckt (oder tut es das evtl. sogar schon?).
Da bin ich erst mal geheilt.

D&D eines externen Dialogs hatte ich gestern erfolgreich eingebaut, aber dann einmal ein eingefrorenes Fenster gehabt.
Den Grund habe ich noch nicht gefunden und reproduzieren konnte ich es auch nicht mehr.

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.18
BeitragVerfasst: 30.03.2018 15:59 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
V1.18
  • Windows können hoch und runter geschoben werden
  • Beim draggen zum Rand, scrollt der Tree (nur Windows)
  • Weitere Dialog xml Dateien können per Drag&Drop hinzugefügt werden (also vom Explorer auf den Tree schieben)
  • Aktualisieren der Dialoge etwas verbessert
  • Ein paar der ComboBoxen mit dem Standardwert initialisiert

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.18
BeitragVerfasst: 31.03.2018 08:25 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
Hi HeXOR,

wau ... hab' mit Deinem Designer zwar noch nicht rumspielen können, aber sieht ja seeehr vielversprechend aus. :allright:

Dabei kam mir sofort eine geniale Funktion beim Atari-ST in den Sinn, die ich bei anderen PCs schon immer vermisst hatte und die man mit Deinem Designer meiner Einschätzung nach umsetzen könnte.

Und zwar waren beim ST die GUIs als Resource in die EXE eingebunden und konnten durch einen Resourcen-Editor auch im nachhinein noch in der bestehenden EXE geändert werden. Man hatte also ein ausführbares Programm und konnte dessen GUI über einen Editor ändern (es gab natürlich die Möglichkeit, das mit Passwort zu schützen).

Genial wäre also, wenn Dein Editor auch Dialoge aus EXE-Resourcen einlesen und schreiben könnte und Du für den Programmierer ggfl. noch einige Funktionen für den einfachen Zugriff auf die Dialoge aus Resourcen zur Verfügung stellen könntest (z.B.: GetXMLfromRessource(...) ).

Ich fand die Möglichkeit beim ST, die GUI in einer kompilierten EXE anpassen zu können damals genial und hab da als Amiga-Programmierer immer neidisch rüber geschaut.
Gerade während der Entwicklungsphase hat das viele Vorteile gebracht, da man 'mal eben schnell' eine Änderung an der GUI vornehmen und testen konnte, ohne immer wieder direkt den Compiler anschmeißen zu müssen.

_________________
Alle sagten "das geht nicht!" .... und dann kam einer der nichts davon wusste und machte es einfach.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.18
BeitragVerfasst: 31.03.2018 12:50 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
@HeXOR:
Tolle Arbeit :allright:
Schaue ich mir demnächst mal genauer an.

@PureLust:
Bei Windows benutzen manche Installer.exe-Dateien auch Resource-Dialogs. Das ist mir aufgefallen, als ich mich mit dem Auslesen der Version-Informationen beschäftigt habe (Modul "FileInfo").
Anstatt dafür die WinAPI-Funktionen zu verwenden, könnte man auch einfach einen String an das Ende der EXE-Datei hängen, der das generierte XML vom DD enthält. So wäre es dann auch OS-unabhängig.

_________________
Bild
Warum OpenSource eine Lizenz haben sollte
PureBasic-CodeArchiv-Rebirth: Git-Repository / Download -- Jede Hilfe ist willkommen!
Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Zuletzt geändert von Sicro am 31.03.2018 12:54, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.18
BeitragVerfasst: 31.03.2018 12:53 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Das wäre sicherlich möglich, allerdings mag ich die Idee nicht besonders, das fest in den Sourcecode einzubauen.
Der DD soll Cross-Platform sein, und ausserdem wollte ich alles in einem Sourcecode haben, leider bietet PB keine nativen Resource-Handling-Befehle an, ich muss also wieder API nutzen (und wegen Linux Drag&Drop musste ich da eh schon viel zu viel einbauen).

Was ich mir vorstellen könnte, wäre ein Add-On System, das beim Laden und Speichern aufgerufen wird.
Dann könnte man so ein Add-On zusätzlich anbieten, dem DD ist es letztendlich ja egal, wo das XML herkommt, ich wollte ihn darauf beschränken, XML zu laden, zu bearbeiten und zu speichern.
Es sollte dann z.B. auch möglich sein ein Add-On zu basteln, das XML Dialoge direkt aus PB-Sourcecodes extrahiert und wieder zurückschreibt oder aber eben aus Resourcen.

Wäre das auch eine Idee?

Ich würde die Add-Ons dann allerdings eher als .dll/.so einbinden.

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.19
BeitragVerfasst: 01.04.2018 23:36 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
V1.19
  • Drag&Drop by Linux war kaputt...
  • Droppen vom DateiExplorer unter Linux geht nicht (ohne alles umzubauen), also habe ich ein neues Menü hinzugefügt (Load additional Dialogs).
  • AddOn System hinzugefügt
  • Beispiel AddOn (Lade/Speichere Dialog aus Source Code) hinzugefügt. Muss als AddOn_LadePB.dll o.ä. kompiliert werden. Wichtig ist das AddOn_ das folgende wird dann als Name genutzt
  • Kleinere Designveränderungen

Wegen der AddOns:
Am besten in DD_Addon_LoadPB.pb schauen, da sollte alles beschrieben sein.
Mit diesem System sollte es auch möglich sein auf Resourcen zuzugreifen, vielleicht macht ja mal ausnahmsweise jemand anders als ich so ein AddOn...

Ich mache jetzt einen Feature-Freeze!
Zuviele Dinge einzubauen birgt die Gefaht zuviele Dinge kaputt zu machen, also lasse ich das so und beseitige nur noch die Fehler.
Feature Requests sind natürlich dennoch willkommen, werden aber dann evtl. erst irgendwann umgesetzt (oder selber machen, Source ist ja da).

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.19
BeitragVerfasst: 21.04.2018 16:51 
Offline
Benutzeravatar

Registriert: 25.01.2005 12:19
Seit der Einführung der Addons in V 1.19 lässt sich leider der DialogDesign0r unter MacOS nicht mehr starten, weil PureBasic unter MacOS mehrere Library-Funktionen nicht unterstützt, z.B. ExamineLibraryFunctions(). Es wäre hilfreich, wenn Du den Aufruf InitAddOns() in main() in ein CompilerIf-Konstrukt setzen könntest:
Code:
  CompilerIf #PB_Compiler_OS <> #PB_OS_MacOS
    InitAddOns()
  CompilerEndIf

Zusätzlich müsste dann noch die komplette Prozedur InitAddOns() in ein solches CompilerIf-Konstrukt gesetzt werden. Dann können zwar keine Addons in MacOS genutzt werden, aber der DialogDesign0r 1.19 lässt sich dann zumindest wieder unter MacOS starten und benutzen, obwohl dann immer noch Einschränkungen in der MacOS-Version bestehen, weil Drag 'n Drop nicht funktioniert, aber das ist dann natürlich der fehlenden Drag 'n Drop Unterstützung von PureBasic für TreeGadgets in MacOS geschuldet...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.20
BeitragVerfasst: 22.04.2018 20:16 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Stimmt, MacOS konnte das gar nicht.
Ich habe das mal abgeändert, AddOns sollten nun auch für MacOS funktionieren.

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 114 Beiträge ]  Gehe zu Seite Vorherige  1 ... 6, 7, 8, 9, 10, 11, 12  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye