VS:CreateLB: Difference between revisions
Jump to navigation
Jump to search
m (1 revision) |
m (add link to more doc) |
||
Line 43: | Line 43: | ||
</lineList> | </lineList> | ||
</params> | </params> | ||
----------------------------------------------------------------------------------------------------------- | |||
<remark> | |||
([[User:CBM-c-|_c_]], 2022.01.22) : Here the former Vectorlab article: [[User:CBM-c-/VS-List_Browsers_part_1| List Browsers]] | |||
</remark> | |||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
Line 51: | Line 57: | ||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
<version> | <version> | ||
Availability: from | Availability: from VectorWorks 11.0 | ||
</version> | </version> |
Latest revision as of 06:17, 22 January 2022
.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix
Description
Creates a layout manager list browser control.
PROCEDURE CreateLB(
dialogID :LONGINT;
componentID :LONGINT;
widthInCharacters :INTEGER;
heightInCharacters :INTEGER);
def vs.CreateLB(dialogID, componentID, widthInCharacters, heightInCharacters): return None
Parameters
dialogID LONGINT id of the dialog that contains the list browser componentID LONGINT id of the list browser control widthInCharacters INTEGER the width of the control in characters heightInCharacters INTEGER the height of the control in characters
Remarks
(_c_, 2022.01.22) : Here the former Vectorlab article: List Browsers
Example
VectorScript
PROCEDURE LB_LayerList; VAR dialog1 : INTEGER; kImageCheck,kImageBlank,kImageSheet,kImageView : Integer; {-----------------------------------------------------------------------------} FUNCTION GetPlugInString(ndx :INTEGER) :STRING; BEGIN CASE ndx OF {Static Text} 3001: GetPlugInString := 'OK'; 3002: GetPlugInString := 'Cancel'; 3003: GetPlugInString := 'Layers'; END; END; {----------------------------------------------------------------------------} PROCEDURE Dialog_Setup; VAR cnt : INTEGER; BEGIN dialog1 := CreateLayout(GetPlugInString(3003),TRUE,GetPlugInString(3001),GetPlugInString(3002)); CreateLB(dialog1,4,25,13); SetFirstLayoutItem(dialog1, 4); END; {-----------------------------------------------------------------------------} PROCEDURE Dialog_Handler(VAR item :LONGINT; data :LONGINT); Var ColNum,TempI,I : Integer; SheetTypeIcon : Integer; BSB : Boolean; BSS : String; LayerHand : Handle; LayerName,SelectedIconString : String; SheetIconNumber,SelectedIconNumber : Integer; BEGIN CASE item OF SetupDialogC: BEGIN {These need to be declared as globals otherwise they won't work outside of setup.} kImageCheck := AddListBrowserImage(dialog1, 4,'Vectorworks/Standard Images/Checkmark.png'); kImageBlank := AddListBrowserImage(dialog1, 4,'Vectorworks/Standard Images/Blank.png'); kImageSheet := AddListBrowserImage(dialog1, 4,'Vectorworks/Standard Images/SheetLayers.png'); kImageView := AddListBrowserImage(dialog1, 4,'Vectorworks/Standard Images/ViewPage.png'); ColNum := InsertLBColumn(dialog1,4,0,'Use',50); BSB := SetLBControlType(dialog1,4,ColNum,3); BSB := SetLBItemDisplayType(dialog1,4,ColNum,1); {ColNum := InsertLBColumn(dialog1,4,0,'',50);}{This crashes VW} ColNum := InsertLBColumn(dialog1,4,1,'Layer Name',100); BSB := SetLBControlType(dialog1,4,ColNum,1); BSB := SetLBItemDisplayType(dialog1,4,ColNum,3); ColNum := InsertLBColumnDataItem(dialog1,4,0,'Checked',kImageCheck,-1,0); ColNum := InsertLBColumnDataItem(dialog1,4,0,'UnChecked',kImageBlank,-1,0); {Traversing from LLayer by PrevObj doesn't work with Sheet Layers} LayerHand := FLayer; I := 0; While LayerHand <> NIL do Begin If GetObjectVariableInt(LayerHand,154) = 2 then SheetTypeIcon := kImageSheet else SheetTypeIcon := kImageView; ColNum := InsertLBColumnDataItem(dialog1,4,1,GetLName(LayerHand),SheetTypeIcon,SheetTypeIcon,0); TempI := InsertLBItem (dialog1, 4, I, GetLName(LayerHand)); BSB := SetLBItemUsingColumnDataItem (dialog1, 4, I, 1, ColNum); BSB := SetLBItemUsingColumnDataItem (dialog1, 4, I, 0, 1); I := I+1; LayerHand := NextObj(LayerHand); End; EnableLBColumnLines(dialog1,4,True); END; 1: BEGIN For I := 1 to GetNumLBItems(dialog1,4) do Begin BSB := GetLBItemInfo(dialog1,4,I-1,1,LayerName,SheetIconNumber); BSB := GetLBItemInfo(dialog1,4,I-1,0,SelectedIconString,SelectedIconNumber); If SheetIconNumber = kImageSheet then Writeln(LayerName,' is a Sheet Layer and is ',SelectedIconString); If SheetIconNumber = kImageView then Writeln(LayerName,' is a Design Layer and is ',SelectedIconString); End; END; END; END; {-----------------------------------------------------------------------------} BEGIN {Main} Rewrite('layer.txt'); Dialog_Setup; IF RunLayoutDialog(dialog1,Dialog_Handler) = 1 THEN BEGIN END; Close('layer.txt'); END; Run(LB_LayerList);
Python
#{-----------------------------------------------------------------------------} def ResourceIsOK(): _ResourceIsOK = False if vs.SetVSResourceFile('IP Resources'): _ResourceIsOK = True else: vs.Message('The IP Resources file was not found.'); return _ResourceIsOK #{-----------------------------------------------------------------------------} def GetPlugInString(ndx): _GetPlugInString = '' if ndx == 3001: _GetPlugInString = 'OK'; elif ndx == 3002: #{Static Text} _GetPlugInString = 'Cancel'; elif ndx == 3003: _GetPlugInString = 'Layers'; return _GetPlugInString #{----------------------------------------------------------------------------} def Dialog_Setup(): dialog1 = vs.CreateLayout(GetPlugInString(3003),True,GetPlugInString(3001),GetPlugInString(3002)) vs.CreateLB(dialog1,4,25,13) vs.SetFirstLayoutItem(dialog1, 4) return dialog1 def Dialog_Handler(item , data ): kImageSheet = vs.AddLBImage(dialog1,4,1,11024) kImageView = vs.AddLBImage(dialog1,4,1,11025) if item == SetupDialogC: #{These need to be declared as globals otherwise they won't work outside of setup.} kImageCheck = vs.AddLBImage(dialog1,4,1,11022) kImageBlank = vs.AddLBImage(dialog1,4,1,11023) ColNum = vs.InsertLBColumn(dialog1,4,0,'Use',50) BSB = vs.SetLBControlType(dialog1,4,ColNum,3) BSB = vs.SetLBItemDisplayType(dialog1,4,ColNum,1) #{ColNum := InsertLBColumn(dialog1,4,0,'',50);}{This crashes VW} ColNum = vs.InsertLBColumn(dialog1,4,1,'Layer Name',100) BSB = vs.SetLBControlType(dialog1,4,ColNum,1) BSB = vs.SetLBItemDisplayType(dialog1,4,ColNum,3) ColNum = vs.InsertLBColumnDataItem(dialog1,4,0,'Checked',kImageCheck,-1,0) ColNum = vs.InsertLBColumnDataItem(dialog1,4,0,'UnChecked',kImageBlank,-1,0) #{Traversing from LLayer by PrevObj doesn't work with Sheet Layers} LayerHand = vs.FLayer() I = 0 while LayerHand != None: if vs.GetObjectVariableInt(LayerHand,154) == 2: SheetTypeIcon = kImageSheet else: SheetTypeIcon = kImageView ColNum = vs.InsertLBColumnDataItem(dialog1,4,1,vs.GetLName(LayerHand),SheetTypeIcon,SheetTypeIcon,0) TempI = vs.InsertLBItem (dialog1, 4, I, vs.GetLName(LayerHand)) BSB = vs.SetLBItemUsingColumnDataItem (dialog1, 4, I, 1, ColNum) BSB = vs.SetLBItemUsingColumnDataItem (dialog1, 4, I, 0, 1) I = I+1 LayerHand = vs.NextObj(LayerHand) vs.EnableLBColumnLines(dialog1,4,True) elif item == 1: for I in range(1, vs.GetNumLBItems(dialog1,4)): BSB, LayerName, SheetIconNumber = vs.GetLBItemInfo(dialog1,4,I-1,1) BSB, SelectedIconString, SelectedIconNumber = vs.GetLBItemInfo(dialog1,4,I-1,0) if SheetIconNumber == kImageSheet: vs.Writeln(LayerName,' is a Sheet Layer and is ',SelectedIconString) if SheetIconNumber == kImageView: vs.Writeln(LayerName,' is a Design Layer and is ',SelectedIconString) def LB_LayerList(): #{-----------------------------------------------------------------------------} global dialog1 vs.Rewrite('layer.txt') if ResourceIsOK(): vs.Message('Hi!') dialog1 = Dialog_Setup() if vs.RunLayoutDialog(dialog1,Dialog_Handler) == 1: pass vs.Close('layer.txt') global SetupDialogC dialog1 = 0 SetupDialogC = 12255 LB_LayerList()
Version
Availability: from VectorWorks 11.0