diff --git a/Client/CentrED.lpi b/Client/CentrED.lpi index 4abe50e..03a85ee 100644 --- a/Client/CentrED.lpi +++ b/Client/CentrED.lpi @@ -20,9 +20,6 @@ - - - @@ -133,25 +130,29 @@ - + - + + - - + - + + - - + + + + + - + @@ -452,6 +453,11 @@ + + + + + @@ -463,4 +469,4 @@ - \ No newline at end of file + diff --git a/Client/Tools/UfrmHueSettings.lfm b/Client/Tools/UfrmHueSettings.lfm index cbf4c6b..6d0d8d2 100644 --- a/Client/Tools/UfrmHueSettings.lfm +++ b/Client/Tools/UfrmHueSettings.lfm @@ -1,11 +1,13 @@ inherited frmHueSettings: TfrmHueSettings Left = 290 - Height = 209 + Height = 426 Top = 171 - Width = 217 + Width = 225 + AutoSize = True Caption = 'Hue Settings' - ClientHeight = 209 - ClientWidth = 217 + ClientHeight = 426 + ClientWidth = 225 + Constraints.MinWidth = 225 OnCreate = FormCreate object lblHue: TLabel[0] AnchorSideLeft.Control = Owner @@ -13,7 +15,7 @@ inherited frmHueSettings: TfrmHueSettings AnchorSideTop.Side = asrCenter Left = 8 Height = 16 - Top = 12 + Top = 11 Width = 26 BorderSpacing.Left = 8 Caption = 'Hue:' @@ -24,7 +26,7 @@ inherited frmHueSettings: TfrmHueSettings AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner Left = 42 - Height = 25 + Height = 23 Top = 8 Width = 80 BorderSpacing.Left = 8 @@ -41,18 +43,347 @@ inherited frmHueSettings: TfrmHueSettings AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 8 - Height = 160 - Top = 41 - Width = 201 - Anchors = [akTop, akLeft, akRight, akBottom] + Height = 139 + Top = 39 + Width = 209 + Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 8 + Font.Height = 14 ItemHeight = 16 OnDrawItem = lbHueDrawItem OnSelectionChange = lbHueSelectionChange + ParentFont = False Style = lbOwnerDrawFixed TabOrder = 1 end - inherited tmClose: TTimer[3] + object gbRandom: TGroupBox[3] + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = lbHue + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 8 + Height = 183 + Top = 186 + Width = 209 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 8 + BorderSpacing.Top = 4 + BorderSpacing.Right = 8 + BorderSpacing.Bottom = 8 + Caption = 'Random pool' + ClientHeight = 165 + ClientWidth = 205 + TabOrder = 2 + Visible = False + object btnAddRandom: TSpeedButton + AnchorSideLeft.Control = gbRandom + AnchorSideTop.Control = gbRandom + Left = 4 + Height = 22 + Hint = 'Add' + Top = 0 + Width = 23 + BorderSpacing.Left = 4 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003A8C44FF368940FF32873CFF2F84 + 37FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000459653FF419950FF7DC28FFF96D0A6FF96CFA6FF78BE + 89FF368D42FF2C8134FF00000000000000000000000000000000000000000000 + 0000000000004D9C5DFF64B478FFA8DBB5FF87CC98FF66BC7DFF64BA7CFF86CB + 98FFA5D9B4FF58AA6BFF2C8134FF000000000000000000000000000000000000 + 000056A366FF6AB97DFFA8DBB2FF60BC77FF5CBA73FF59B870FF59B56FFF58B5 + 6FFF5BB774FFA5D9B3FF5AAA6CFF2C8234FF0000000000000000000000000000 + 000053AB68FFAADDB4FF64C179FF5FBE71FF60BC77FFFFFFFFFFFFFFFFFF59B8 + 70FF58B56EFF5CB774FFA6DAB4FF388F43FF00000000000000000000000061AC + 75FF8ACC98FF89D396FF6BC67AFF63C170FF55AB65FFFFFFFFFFFFFFFFFF59B8 + 70FF59B870FF5BB972FF85CC97FF7BBE8DFF308539FF000000000000000065AF + 7AFFA9DDB3FF7DCF8AFF75CC81FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF59B870FF67BE7DFF9CD4ABFF34883DFF000000000000000069B2 + 7EFFB6E2BEFF8BD597FF7AC986FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF59B870FF69C17EFF9DD4AAFF388B42FF00000000000000006DB5 + 83FFACDDB6FFA6DFAFFF81CB8CFF7CC986FF6EBD79FFFFFFFFFFFFFFFFFF5BAC + 6AFF60BC77FF5CBA73FF8BD199FF80C592FF3C8E47FF00000000000000000000 + 000085C797FFD2EED7FF95D9A0FF8AD394FF7FC889FFFFFFFFFFFFFFFFFF79CD + 85FF6BC37CFF6FC77EFFACDFB5FF459E57FF0000000000000000000000000000 + 000070B887FFAADAB7FFD8F1DCFF92D89DFF88CD93FF84CC8EFF8BD496FF8AD4 + 95FF83D28EFFAFE0B7FF6BB97DFF489856FF0000000000000000000000000000 + 00000000000070B887FFAFDCBBFFDCF2E0FFB6E4BDFF9BDBA5FF96D9A0FFA5DF + AFFFC0E8C5FF79C28AFF509E5FFF000000000000000000000000000000000000 + 0000000000000000000071B887FF94CEA4FFC3E6CBFFCFEBD4FFC9E9CEFFAFDD + B8FF6DB97FFF58A569FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000006EB684FF6AB380FF67B17CFF63AE + 77FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnAddRandomClick + ShowHint = True + ParentShowHint = False + end + object btnDeleteRandom: TSpeedButton + AnchorSideLeft.Control = btnAddRandom + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnAddRandom + Left = 31 + Height = 22 + Hint = 'Delete' + Top = 0 + Width = 23 + BorderSpacing.Left = 4 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003853BEFF3551BDFF304BBCFF2E4E + B8FF000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178 + E4FF334DC1FF2B4AB7FF00000000000000000000000000000000000000000000 + 0000000000004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84 + EEFF9EA0F4FF515DD7FF2B4AB7FF000000000000000000000000000000000000 + 00005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56 + E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FF0000000000000000000000000000 + 00004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF0000000000000000000000005C62 + D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF00000000000000005F63 + DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF00000000000000006469 + DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF0000000000000000676A + DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F + ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF00000000000000000000 + 00007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84 + F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF0000000000000000000000000000 + 00006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92 + F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF0000000000000000000000000000 + 0000000000006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9 + FBFFBAC7FCFF707BE9FF4C5BCCFF000000000000000000000000000000000000 + 000000000000000000006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4 + F4FF6670E2FF535ED1FF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000686ADDFF6364DCFF6164DAFF5D63 + D9FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnDeleteRandomClick + ShowHint = True + ParentShowHint = False + end + object btnClearRandom: TSpeedButton + AnchorSideLeft.Control = btnDeleteRandom + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnDeleteRandom + Left = 58 + Height = 22 + Hint = 'Clear' + Top = 0 + Width = 23 + BorderSpacing.Left = 4 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000F1FF0000F1FF0000F1FF0000F1FF0000EFFF0000 + EFFF0000EDFF0000EDFF00000000000000000000000000000000000000000000 + 0000000000000000F5FF1A20F5FF3C4CF9FF3A49F8FF3847F8FF3545F8FF3443 + F7FF3242F7FF141BF1FF0000EDFF000000000000000000000000000000000000 + 00000000F7FF1D23F9FF4453FAFF2429F9FF1212F7FF0F0FF6FF0C0CF5FF0909 + F5FF161BF5FF3343F7FF141BF1FF0000EDFF0000000000000000000000000000 + F9FF1F25FAFF4A58FBFF4247FBFFC9C9FDFF3B3BF9FF1313F7FF1010F6FF3333 + F7FFC5C5FDFF3035F7FF3444F7FF141BF2FF0000EDFF00000000000000000000 + FBFF4F5DFDFF3237FBFFCBCBFEFFF2F2FFFFEBEBFEFF3B3BF9FF3939F8FFEAEA + FEFFF1F1FEFFC5C5FDFF181DF6FF3343F7FF0000EFFF00000000000000000000 + FDFF525FFDFF2828FCFF4747FCFFECECFFFFF2F2FFFFECECFFFFECECFEFFF1F1 + FFFFEAEAFEFF3434F7FF0B0BF5FF3545F8FF0000EFFF00000000000000000000 + FDFF5562FEFF2C2CFDFF2929FCFF4848FCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FEFF3A3AF9FF1212F7FF0F0FF6FF3848F8FF0000F1FF00000000000000000000 + FDFF5764FEFF3030FDFF2D2DFDFF4B4BFCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FFFF3D3DF9FF1616F8FF1313F7FF3C4BF8FF0000F1FF00000000000000000000 + FFFF5A67FEFF3333FEFF5050FDFFEDEDFFFFF3F3FFFFEDEDFFFFEDEDFFFFF2F2 + FFFFECECFEFF3E3EFAFF1717F8FF3F4EF9FF0000F1FF00000000000000000000 + FFFF5B68FFFF4347FEFFCFCFFFFFF3F3FFFFEDEDFFFF4C4CFCFF4A4AFCFFECEC + FFFFF2F2FFFFCACAFEFF2A2FFAFF4251FAFF0000F3FF00000000000000000000 + FFFF262BFFFF5D6AFFFF585BFFFFCFCFFFFF5252FEFF2F2FFDFF2C2CFDFF4B4B + FCFFCCCCFEFF484CFBFF4957FBFF1D23F9FF0000F5FF00000000000000000000 + 00000000FFFF262BFFFF5D6AFFFF4347FFFF3434FEFF3232FEFF3030FDFF2D2D + FDFF383CFCFF4F5DFCFF1F25FAFF0000F7FF0000000000000000000000000000 + 0000000000000000FFFF262BFFFF5C69FFFF5B68FFFF5A67FEFF5865FEFF5663 + FEFF5461FEFF2227FCFF0000FBFF000000000000000000000000000000000000 + 000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FDFF0000 + FDFF0000FDFF0000FDFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnClearRandomClick + ShowHint = True + ParentShowHint = False + end + object btnRandomPresetSave: TSpeedButton + AnchorSideTop.Control = cbRandomPreset + AnchorSideRight.Control = btnRandomPresetDelete + Left = 153 + Height = 22 + Hint = 'Save Preset' + Top = 138 + Width = 22 + Anchors = [akTop, akRight] + BorderSpacing.Right = 4 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 000000000000000000000000000000000000BA6833FFC38458FFD38B68FFE18F + 70FFDC8D6CFFDA8B6DFFD78A6EFFCD8B6CFFAB6D44FFA65F2EFF00000000BA65 + 30FFBB6631FFBA6630FFBA6630FFBA6530FFC68355FFEFCEBAFFDDFFFFFF87EE + C7FFA2F4D7FFA2F6D7FF8CEEC7FFE0FFFFFFDDA285FFAB6A3EFFBC6933FFF8F1 + EAFFF7ECDFFFF6EADEFFF6EADCFFF6EADCFFC37F51FFEFB69AFFEAF3E8FF51BF + 84FF6FC998FF71C999FF54BF84FFE4F4E9FFDD9C7BFFAA693AFFBF7138FFF5EB + DFFFFDBF68FFFBBE65FFFCBE64FFFCBE64FFC48154FFEAB697FFF3F3EAFFEDF1 + E6FFEFF1E6FFEFF0E6FFEDF1E5FFF3F5EDFFD59C79FFB07044FFC1783CFFF7ED + E3FFFDC26EFFFFD79EFFFFD69BFFFFD798FFC98B61FFE6B592FFE2A781FFE1A7 + 81FFDEA37DFFDCA17BFFDB9F79FFD99E77FFD49A73FFBB7E57FFC47C40FFF7F0 + E6FFF8B455FFF7B554FFF8B453FFF8B253FFCA8D65FFEAB899FFDDA57EFFDDA6 + 80FFDBA37CFFD9A07AFFD9A079FFD89F78FFD89E78FFBF845DFFC58245FFF8F2 + EBFFFEE7D6FFFDE7D6FFFDE7D6FFFDE6D5FFC8885DFFEFBFA1FFFDFCFAFFFEFC + FBFFFEFDFDFFFEFDFCFFFDFBFAFFFDFCFBFFDDA885FFC17F53FFC68447FFF9F3 + ECFFFEE8D6FFFDE7D6FFFDE7D6FFFDE7D5FFC7865BFFEFC09EFFFFFFFFFFCC93 + 6EFFFFFFFFFFFFFFFFFFFFFBF7FFFFF8F1FFE4AF8CFFC78A61FFC68849FFF9F4 + EDFFFEE8D8FFFEE8D7FFFEE7D6FFFDE5D3FFCC8D65FFF3CDB0FFFFFFFFFFE3C7 + B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEABFA1FFC98960FFC6884AFFF9F4 + EFFFFEE7D7FFFDE7D5FFFDE6D4FFFCE6D2FFD4976EFFD49E7BFFD09871FFD6A4 + 82FFCD8E68FFCD9069FFD09A75FFD19973FFC88B62FF00000000C6894BFFF9F4 + F0FFFCE6D3FFFDE7D3FFFCE4D1FFFBE3CDFFFAE0C8FFF8DCC2FFF5D6BBFFF3D4 + B5FFF1D2B3FFF8F4F0FFC48246FF000000000000000000000000C6894BFFF9F5 + F1FFFCE3CFFFFCE4CFFFFCE3CDFFFAE1CAFFF9DDC4FFF6D9BCFFF4E9DFFFF7F2 + ECFFFBF7F3FFF5EFE9FFC27E45FF000000000000000000000000C6894CFFF9F5 + F1FFFCE3CDFFFBE3CDFFFBE2CBFFF9E0C8FFF8DCC2FFF5D6BAFFFDFBF8FFFCE6 + CDFFFAE5C9FFE2B684FFBF7942FF000000000000000000000000C5884BFFFAF6 + F2FFFAE0C7FFFBE2C9FFFBE0C8FFF9DFC5FFF8DBC1FFF4D6B8FFFFFBF8FFF6D8 + B4FFE1B07DFFDB9264FF00000000000000000000000000000000C48549FFF7F2 + ECFFF8F4EEFFF8F3EDFFF8F3EDFFF8F3EDFFF8F2ECFFF7F2ECFFF2E6D7FFE2B2 + 7DFFDB9465FF000000000000000000000000000000000000000000000000C88B + 4DFFC88C4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B4FFFC5894BFFC476 + 3BFF000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + ShowCaption = False + ShowHint = True + ParentShowHint = False + end + object btnRandomPresetDelete: TSpeedButton + AnchorSideTop.Control = btnRandomPresetSave + AnchorSideRight.Control = gbRandom + AnchorSideRight.Side = asrBottom + Left = 179 + Height = 22 + Hint = 'Delete Preset' + Top = 138 + Width = 22 + Anchors = [akTop, akRight] + BorderSpacing.Right = 4 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000BA6530FFBB6631FFBA6630FFBA6630FFBA6630FFBA6530FFBA652FFFB965 + 2EFF6E5E76FF1949A8FF0542BBFF1348ADFF394E8FFF0000000000000000BC69 + 33FFF8F1EAFFF7ECDFFFF6EBDEFFF6EADEFFF6EADCFFF6EADCFFFAF3EBFF8AA5 + D7FF2866CAFF2177E6FF0579EAFF0164DDFF064DBBFF0000000000000000BF71 + 38FFF5EBDFFFFDBF68FFFCBD67FFFBBE65FFFCBE64FFFCBE64FFFCBD62FF1E52 + B0FF639DF4FF187FFFFF0076F8FF0076EEFF0368E1FF0345B9FF00000000C178 + 3CFFF7EDE3FFFDC26EFFFFD8A0FFFFD79EFFFFD69BFFFFD798FFFFD696FF0543 + BCFFAECDFEFFFFFFFFFFFFFFFFFFFFFFFFFF187FEFFF0442BCFF00000000C47C + 40FFF7F0E6FFF8B455FFF7B456FFF7B554FFF8B453FFF8B253FFF7B352FF2453 + ABFF8DB5F6FF4D92FFFF1177FFFF2186FFFF408AEBFF0344B9FF00000000C580 + 42FFF8F1E8FFFEE5D5FFFDE5D3FFFDE5D3FFFCE5D3FFFCE5D3FFFCE4D1FF94A1 + C9FF3D76D1FF8DB5F7FFB8D6FEFF72A8F5FF2F6BC9FF0000000000000000C582 + 45FFF8F2EBFFFEE7D6FFFDE7D6FFFDE7D6FFFDE7D6FFFDE6D5FFFDE5D3FFFCE4 + D1FF94A1C9FF2A5EC1FF0543BCFF1F59BFFF686279FF0000000000000000C684 + 47FFF9F3ECFFFEE8D6FFFEE8D7FFFDE7D6FFFDE7D6FFFDE7D5FFFDE5D3FFFBE4 + D0FFFBE3CCFFFADFC7FFFADFC6FFFAF2EAFFC68042FF0000000000000000C688 + 49FFF9F4EDFFFEE8D8FFFEE8D8FFFEE8D7FFFEE7D6FFFDE5D3FFFCE4D1FFFBE1 + CCFFFAE0C7FFF9DDC3FFF8DCC2FFFAF4EDFFC68245FF0000000000000000C688 + 4AFFF9F4EFFFFEE7D7FFFDE7D6FFFDE7D5FFFDE6D4FFFCE6D2FFFBE1CCFFFADF + C7FFF8DCC2FFF6DABDFFF6D8BBFFFAF4EFFFC68346FF0000000000000000C689 + 4BFFF9F4F0FFFCE6D3FFFCE6D4FFFDE7D3FFFCE4D1FFFBE3CDFFFAE0C8FFF8DC + C2FFF5D6BBFFF3D4B5FFF1D2B3FFF8F4F0FFC48246FF0000000000000000C689 + 4BFFF9F5F1FFFCE3CFFFFBE4D0FFFCE4CFFFFCE3CDFFFAE1CAFFF9DDC4FFF6D9 + BCFFF4E9DFFFF7F2ECFFFBF7F3FFF5EFE9FFC27E45FF0000000000000000C689 + 4CFFF9F5F1FFFCE3CDFFFBE3CEFFFBE3CDFFFBE2CBFFF9E0C8FFF8DCC2FFF5D6 + BAFFFDFBF8FFFCE6CDFFFAE5C9FFE2B684FFBF7942FF0000000000000000C588 + 4BFFFAF6F2FFFAE0C7FFFBE1C9FFFBE2C9FFFBE0C8FFF9DFC5FFF8DBC1FFF4D6 + B8FFFFFBF8FFF6D8B4FFE1B07DFFDB9264FF000000000000000000000000C485 + 49FFF7F2ECFFF8F4EEFFF8F4EDFFF8F3EDFFF8F3EDFFF8F3EDFFF8F2ECFFF7F2 + ECFFF2E6D7FFE2B27DFFDB9465FF000000000000000000000000000000000000 + 0000C88B4DFFC88C4FFFC88C4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B + 4FFFC5894BFFC4763BFF00000000000000000000000000000000 + } + NumGlyphs = 0 + ShowCaption = False + ShowHint = True + ParentShowHint = False + end + object cbRandomPreset: TComboBox + AnchorSideLeft.Control = gbRandom + AnchorSideRight.Control = btnRandomPresetSave + AnchorSideBottom.Control = gbRandom + AnchorSideBottom.Side = asrBottom + Left = 4 + Height = 23 + Top = 138 + Width = 145 + Anchors = [akLeft, akRight, akBottom] + BorderSpacing.Left = 4 + BorderSpacing.Right = 4 + BorderSpacing.Bottom = 4 + ItemHeight = 15 + Sorted = True + Style = csDropDownList + TabOrder = 0 + end + object lbRandom: TListBox + AnchorSideLeft.Control = gbRandom + AnchorSideTop.Control = btnAddRandom + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = gbRandom + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = cbRandomPreset + Left = 4 + Height = 108 + Top = 26 + Width = 197 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 4 + ItemHeight = 0 + MultiSelect = True + OnDrawItem = lbHueDrawItem + TabOrder = 1 + end + end + object cbRandom: TCheckBox[4] + AnchorSideTop.Control = edHue + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = gbRandom + AnchorSideRight.Side = asrBottom + Left = 152 + Height = 19 + Top = 10 + Width = 65 + Anchors = [akTop, akRight] + Caption = 'Random' + OnChange = cbRandomChange + TabOrder = 3 + end + inherited tmClose: TTimer[5] left = 152 top = 112 end diff --git a/Client/Tools/UfrmHueSettings.pas b/Client/Tools/UfrmHueSettings.pas index ecf2d72..ba90302 100644 --- a/Client/Tools/UfrmHueSettings.pas +++ b/Client/Tools/UfrmHueSettings.pas @@ -31,16 +31,29 @@ interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, - UfrmToolWindow, UHue; + ExtCtrls, Buttons, VirtualTrees, UfrmToolWindow, UHue; type { TfrmHueSettings } TfrmHueSettings = class(TfrmToolWindow) + btnAddRandom: TSpeedButton; + btnClearRandom: TSpeedButton; + btnDeleteRandom: TSpeedButton; + btnRandomPresetDelete: TSpeedButton; + btnRandomPresetSave: TSpeedButton; + cbRandomPreset: TComboBox; + cbRandom: TCheckBox; edHue: TEdit; + gbRandom: TGroupBox; lblHue: TLabel; lbHue: TListBox; + lbRandom: TListBox; + procedure btnAddRandomClick(Sender: TObject); + procedure btnClearRandomClick(Sender: TObject); + procedure btnDeleteRandomClick(Sender: TObject); + procedure cbRandomChange(Sender: TObject); procedure edHueEditingDone(Sender: TObject); procedure FormCreate(Sender: TObject); procedure lbHueDrawItem(Control: TWinControl; Index: Integer; ARect: TRect; @@ -73,6 +86,39 @@ begin lbHue.ItemIndex := hueID; end; +procedure TfrmHueSettings.btnDeleteRandomClick(Sender: TObject); +var + i: Integer; +begin + lbRandom.Items.BeginUpdate; + for i := lbRandom.Items.Count - 1 downto 0 do + if lbRandom.Selected[i] then + lbRandom.Items.Delete(i); + lbRandom.Items.EndUpdate; +end; + +procedure TfrmHueSettings.cbRandomChange(Sender: TObject); +begin + lbHue.MultiSelect := cbRandom.Checked; + gbRandom.Visible := cbRandom.Checked; +end; + +procedure TfrmHueSettings.btnClearRandomClick(Sender: TObject); +begin + lbRandom.Items.Clear; +end; + +procedure TfrmHueSettings.btnAddRandomClick(Sender: TObject); +var + i: Integer; +begin + lbRandom.Items.BeginUpdate; + for i := 0 to lbHue.Count - 1 do + if lbHue.Selected[i] then + lbRandom.Items.AddObject(lbHue.Items.Strings[i], lbHue.Items.Objects[i]); + lbRandom.Items.EndUpdate; +end; + procedure TfrmHueSettings.FormCreate(Sender: TObject); var i: Integer; @@ -97,7 +143,7 @@ begin hue := ResMan.Hue.Hues[Index-1] else hue := nil; - DrawHue(hue, lbHue.Canvas, ARect, lbHue.Items.Strings[Index]); + DrawHue(hue, TListBox(Control).Canvas, ARect, TListBox(Control).Items.Strings[Index]); end; procedure TfrmHueSettings.lbHueSelectionChange(Sender: TObject; User: boolean); @@ -121,7 +167,7 @@ begin ACanvas.MoveTo(ARect.Left + 2 + i, ARect.Top + 1); ACanvas.LineTo(ARect.Left + 2 + i, ARect.Bottom - 1); end; - ACanvas.TextOut(ARect.Left + 36, ARect.Top, ACaption); + ACanvas.TextOut(ARect.Left + 36, ARect.Top + 1, ACaption); end; initialization diff --git a/Client/UfrmMain.lfm b/Client/UfrmMain.lfm index 0bcc9ba..ddb7ebd 100644 --- a/Client/UfrmMain.lfm +++ b/Client/UfrmMain.lfm @@ -18,7 +18,7 @@ object frmMain: TfrmMain Position = poScreenCenter SessionProperties = 'acFlat.Checked;acNoDraw.Checked;Height;Left;mnuFlatShowHeight.Checked;mnuSecurityQuestion.Checked;mnuShowAnimations.Checked;spTileList.Top;tbStatics.Down;tbTerrain.Down;Top;Width;WindowState;mnuWhiteBackground.Checked' ShowInTaskBar = stAlways - LCLVersion = '0.9.29' + LCLVersion = '0.9.31' WindowState = wsMaximized object pnlBottom: TPanel Left = 0 @@ -140,7 +140,7 @@ object frmMain: TfrmMain AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = spTileList Left = 4 - Height = 234 + Height = 240 Hint = '-' Top = 50 Width = 208 @@ -191,18 +191,20 @@ object frmMain: TfrmMain OnScroll = vdtTilesScroll end object gbRandom: TGroupBox + AnchorSideLeft.Control = tsTiles AnchorSideTop.Control = spTileList AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = tsTiles + AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = tsTiles AnchorSideBottom.Side = asrBottom Left = 0 - Height = 189 - Top = 289 + Height = 183 + Top = 295 Width = 216 - Align = alBottom Anchors = [akTop, akLeft, akRight, akBottom] Caption = 'Random pool' - ClientHeight = 171 + ClientHeight = 165 ClientWidth = 212 TabOrder = 1 object btnAddRandom: TSpeedButton @@ -214,7 +216,6 @@ object frmMain: TfrmMain Top = 0 Width = 23 BorderSpacing.Left = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -266,7 +267,6 @@ object frmMain: TfrmMain Top = 0 Width = 23 BorderSpacing.Left = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -318,7 +318,6 @@ object frmMain: TfrmMain Top = 0 Width = 23 BorderSpacing.Left = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -366,11 +365,10 @@ object frmMain: TfrmMain Left = 160 Height = 22 Hint = 'Save Preset' - Top = 146 + Top = 140 Width = 22 Anchors = [akTop, akRight] BorderSpacing.Right = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -420,11 +418,10 @@ object frmMain: TfrmMain Left = 186 Height = 22 Hint = 'Delete Preset' - Top = 146 + Top = 140 Width = 22 Anchors = [akTop, akRight] BorderSpacing.Right = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -477,7 +474,7 @@ object frmMain: TfrmMain AnchorSideBottom.Control = cbRandomPreset Cursor = 63 Left = 4 - Height = 118 + Height = 112 Top = 24 Width = 204 Anchors = [akTop, akLeft, akRight, akBottom] @@ -526,7 +523,7 @@ object frmMain: TfrmMain AnchorSideBottom.Side = asrBottom Left = 4 Height = 21 - Top = 146 + Top = 140 Width = 152 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Left = 4 @@ -546,7 +543,7 @@ object frmMain: TfrmMain Cursor = crVSplit Left = 0 Height = 5 - Top = 284 + Top = 290 Width = 216 Align = alNone Anchors = [akLeft, akRight, akBottom] @@ -560,7 +557,7 @@ object frmMain: TfrmMain Left = 108 Height = 21 Hint = 'Append S or T to restrict the search to Statics or Terrain.' - Top = 255 + Top = 261 Width = 96 Anchors = [akRight, akBottom] BorderSpacing.Right = 8 @@ -650,7 +647,6 @@ object frmMain: TfrmMain Top = 452 Width = 23 BorderSpacing.Left = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -704,7 +700,6 @@ object frmMain: TfrmMain Width = 23 Anchors = [akLeft, akBottom] BorderSpacing.Bottom = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -756,7 +751,6 @@ object frmMain: TfrmMain Width = 23 Anchors = [akTop, akRight] BorderSpacing.Right = 4 - Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 @@ -822,7 +816,7 @@ object frmMain: TfrmMain item Position = 1 Text = 'Name' - Width = 133 + Width = 129 end> Header.DefaultHeight = 17 Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] @@ -857,18 +851,18 @@ object frmMain: TfrmMain Top = 2 Caption = 'Disconnect' ImageIndex = 0 + OnClick = mnuDisconnectClick ParentShowHint = False ShowHint = True - OnClick = mnuDisconnectClick end object tbSeparator1: TToolButton Left = 24 Top = 2 - Width = 16 + Width = 4 Style = tbsDivider end object tbSelect: TToolButton - Left = 40 + Left = 28 Top = 2 Action = acSelect Grouped = True @@ -877,7 +871,7 @@ object frmMain: TfrmMain Style = tbsCheck end object tbDrawTile: TToolButton - Left = 63 + Left = 51 Top = 2 Action = acDraw Grouped = True @@ -886,7 +880,7 @@ object frmMain: TfrmMain Style = tbsCheck end object tbMoveTile: TToolButton - Left = 86 + Left = 74 Top = 2 Action = acMove Grouped = True @@ -895,7 +889,7 @@ object frmMain: TfrmMain Style = tbsCheck end object tbElevateTile: TToolButton - Left = 109 + Left = 97 Top = 2 Action = acElevate Grouped = True @@ -904,7 +898,7 @@ object frmMain: TfrmMain Style = tbsCheck end object tbDeleteTile: TToolButton - Left = 132 + Left = 120 Top = 2 Action = acDelete Grouped = True @@ -913,7 +907,7 @@ object frmMain: TfrmMain Style = tbsCheck end object tbSetHue: TToolButton - Left = 155 + Left = 143 Top = 2 Action = acHue Grouped = True @@ -922,111 +916,111 @@ object frmMain: TfrmMain Style = tbsCheck end object tbSeparator3: TToolButton - Left = 209 + Left = 193 Top = 2 - Width = 16 + Width = 4 Caption = 'tbSeparator3' Style = tbsDivider end object tbBoundaries: TToolButton - Left = 225 + Left = 197 Top = 2 Action = acBoundaries ParentShowHint = False ShowHint = True end object tbSeparator4: TToolButton - Left = 294 + Left = 266 Top = 2 - Width = 17 + Width = 4 Caption = 'tbSeparator4' Style = tbsDivider end object tbTerrain: TToolButton - Left = 311 + Left = 270 Hint = 'Show Terrain' Top = 2 Caption = 'Terrain' Down = True ImageIndex = 10 + OnClick = tbTerrainClick ParentShowHint = False ShowHint = True Style = tbsCheck - OnClick = tbTerrainClick end object tbStatics: TToolButton - Left = 334 + Left = 293 Hint = 'Show Statics' Top = 2 Caption = 'Statics' Down = True ImageIndex = 11 + OnClick = tbStaticsClick ParentShowHint = False ShowHint = True Style = tbsCheck - OnClick = tbStaticsClick end object tbSeparator5: TToolButton - Left = 461 + Left = 420 Top = 2 - Width = 17 + Width = 4 Caption = 'tbSeparator5' Style = tbsDivider end object tbRadarMap: TToolButton - Left = 478 + Left = 424 Hint = 'Radar Map' Top = 2 Caption = 'Radar Map' ImageIndex = 13 + OnClick = tbRadarMapClick ParentShowHint = False ShowHint = True - OnClick = tbRadarMapClick end object tbVirtualLayer: TToolButton - Left = 248 + Left = 220 Top = 2 Action = acVirtualLayer end object tbFilter: TToolButton - Left = 271 + Left = 243 Top = 2 Action = acFilter - Style = tbsCheck OnMouseMove = tbFilterMouseMove + Style = tbsCheck end object tbFlat: TToolButton - Left = 426 + Left = 385 Top = 2 Action = acFlat DropdownMenu = pmFlatViewSettings Style = tbsDropDown end object tbNoDraw: TToolButton - Left = 357 + Left = 316 Top = 2 Action = acNoDraw Style = tbsCheck end object tbSeparator2: TToolButton - Left = 178 + Left = 166 Top = 2 - Width = 8 + Width = 4 Caption = 'tbSeparator2' Style = tbsDivider end object tbUndo: TToolButton - Left = 186 + Left = 170 Top = 2 Action = acUndo end object tbLightlevel: TToolButton - Left = 403 + Left = 362 Top = 2 Action = acLightlevel end object tbWalkable: TToolButton - Left = 380 + Left = 339 Top = 2 Action = acWalkable Style = tbsCheck @@ -1106,7 +1100,7 @@ object frmMain: TfrmMain item Position = 2 Text = 'Message' - Width = 381 + Width = 377 end> Header.DefaultHeight = 17 Header.MainColumn = 2 @@ -1134,14 +1128,13 @@ object frmMain: TfrmMain end object spChat: TSplitter AnchorSideLeft.Control = pcLeft - AnchorSideLeft.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Cursor = crVSplit - Left = 224 + Left = 0 Height = 5 Top = 414 - Width = 531 + Width = 755 Align = alNone Anchors = [akLeft, akRight, akBottom] AutoSnap = False