vdfsplat / AppSrc / cDebugCJCommandBarSystem.pkg
History | View | Annotate | Download (4.84 KB)
1 | 7 | wil | //TH-Header |
---|---|---|---|
2 | //***************************************************************************************** |
||
3 | // Copyright (c) 2013 Antwise Solutions |
||
4 | // All rights reserved. |
||
5 | // |
||
6 | // $FileName : cDebugCJCommandBarSystem |
||
7 | // $ProjectName : Vdf Splat Debugger |
||
8 | // $Authors : Wil van Antwerpen |
||
9 | // $Created : 12.15.2013 02:28 |
||
10 | 8 | wil | // $Type : GPLv2 |
11 | 7 | wil | // |
12 | // Contents: |
||
13 | // |
||
14 | //***************************************************************************************** |
||
15 | //TH-RevisionStart |
||
16 | //TH-RevisionEnd |
||
17 | |||
18 | // these are all the packages used in a standard MDI menubar/toolbar system |
||
19 | |||
20 | Use cCJCommandBarSystem.pkg |
||
21 | Use cCJStandardMenuItemClasses.pkg |
||
22 | Use cCJAboutMenuItem.pkg |
||
23 | 8 | wil | Use cDebugCJMenuItemClasses.pkg |
24 | 7 | wil | Use cCJMDIWindowsMenuItem.pkg |
25 | |||
26 | |||
27 | // |
||
28 | Class cDebugCJCommandBarSystem is a cCJCommandBarSystem |
||
29 | Procedure Construct_Object |
||
30 | forward send Construct_Object |
||
31 | |||
32 | Set pbTimerUpdate To True // must set this to dynamically update enabled state |
||
33 | End_Procedure // Construct_Object |
||
34 | |||
35 | |||
36 | // Code copied in from VDF17.1 to overcome the extremely ugly icons. |
||
37 | // Auto excluded for higher VDF versions that have this fix already |
||
38 | #IF (FMAC_VERSION < 17) |
||
39 | //****** COPY CODE STARTS |
||
40 | // Adds an image to imagelist. Pass if bmp or icon, the image name and the Id and image type (normal, disabled, etc.) |
||
41 | // With Bitmaps this will first look for the resource then search for the file in the file path. |
||
42 | // With Icons it checks for the file first (explained below) |
||
43 | // return Image Id if success |
||
44 | Function AddImageType Boolean bIsIcon String sImage Integer iId Integer eImageType Returns Integer |
||
45 | Handle hBitmap |
||
46 | Variant vImageManager |
||
47 | Handle hoImageIcons |
||
48 | Integer iVoid |
||
49 | Boolean bOk |
||
50 | String sFileImage |
||
51 | |||
52 | If (iId=0) Begin |
||
53 | Get piLastImageId to iId |
||
54 | Increment iId |
||
55 | Set piLastImageId to iId |
||
56 | End |
||
57 | |||
58 | Get Create U_cCJImageManagerIcons to hoImageIcons |
||
59 | Get ComIcons to vImageManager |
||
60 | Set pvComObject of hoImageIcons to vImageManager |
||
61 | |||
62 | // if an icon we will always try to load from a file first. Loading from a file works better than |
||
63 | // the internal resource load because the internal load only finds the first image. If the ico has |
||
64 | // multiple images (which CJ can use) all of the extra images are lost |
||
65 | |||
66 | // if an Icon - load from file first then load from resource |
||
67 | If bIsIcon Begin |
||
68 | Get_File_Path sImage to sFileImage // find path in DFPATH, if appropriate |
||
69 | If (sFileImage<>"") Begin |
||
70 | Send ComLoadIcon of hoImageIcons sFileImage iId eImageType |
||
71 | Move True to bOk |
||
72 | End |
||
73 | Else Begin |
||
74 | Move (LoadImage(GetModuleHandle(0), sImage, IMAGE_ICON, 0, 0, 0)) to hBitmap |
||
75 | If hBitmap Begin |
||
76 | // this works with alpha blends - even when passed false |
||
77 | Send ComAddIconHandle hBitmap iId eImageType False |
||
78 | Move (DestroyIcon(hBitmap)) to iVoid |
||
79 | Move True to bOk |
||
80 | End |
||
81 | End |
||
82 | End |
||
83 | // if a bitmap - load from resource first then from file |
||
84 | Else Begin |
||
85 | Move (LoadImage(GetModuleHandle(0), sImage, IMAGE_BITMAP, 0, 0, 0)) to hBitmap |
||
86 | |||
87 | If (hBitmap=0) Begin // the bitmap was not in the EXE resource |
||
88 | Get_File_Path sImage to sFileImage // find path in DFPATH, if appropriate |
||
89 | |||
90 | If (sFileImage <>"") Begin // The image was found! |
||
91 | // Move (LoadImage(0, sFileImage, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)) to hBitmap |
||
92 | Send ComLoadBitmap of hoImageIcons sFileImage iId eImageType |
||
93 | Move True to bOk |
||
94 | End |
||
95 | End |
||
96 | |||
97 | If hBitmap Begin |
||
98 | Send ComAddBitmap of hoImageIcons hBitmap iId eImageType False |
||
99 | Move (DeleteObject(hBitmap)) to iVoid |
||
100 | Move True to bOk |
||
101 | End |
||
102 | End |
||
103 | |||
104 | Send destroy of hoImageIcons |
||
105 | |||
106 | Function_Return (If(bOk, iId, 0)) |
||
107 | End_Procedure |
||
108 | |||
109 | // Adds an image to imagelist. |
||
110 | // We assume that this is an icon unless the .bmp extension is passed. |
||
111 | // return True if success |
||
112 | Function AddImage String sImage Integer iId Integer eImageType Returns Integer |
||
113 | Boolean bIsIcon |
||
114 | // Command Bars support many graphics formats including .bmp, .gif, .jpg etc. |
||
115 | // These are all non-icon formats... |
||
116 | // Move (Pos(".bmp", Lowercase(sImage)) = 0) to bIsIcon |
||
117 | Move (Right(Lowercase(sImage), 4) = ".ico") to bIsIcon |
||
118 | Get AddImageType bIsIcon sImage iId eImageType to iId |
||
119 | Function_Return iId |
||
120 | End_Procedure |
||
121 | //****** COPY CODE ENDS |
||
122 | #ENDIF |
||
123 | |||
124 | |||
125 | End_Class // cImageEditCJCommandBarSystem |