mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
ide: OnlineSearch improvements
git-svn-id: svn://ultimatepp.org/upp/trunk@15401 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
f232316ed8
commit
98670011d1
11 changed files with 341 additions and 115 deletions
|
|
@ -1,135 +1,135 @@
|
|||
LAYOUT(EditStringLayout, 396, 68)
|
||||
ITEM(Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 128).TopPosZ(8, 19))
|
||||
ITEM(EditString, text, HSizePosZ(136, 8).TopPosZ(8, 19))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 90).BottomPosZ(8, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
|
||||
ITEM(Upp::Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 128).TopPosZ(8, 19))
|
||||
ITEM(Upp::EditString, text, HSizePosZ(136, 8).TopPosZ(8, 19))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 90).BottomPosZ(8, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(EditIntLayout, 236, 62)
|
||||
ITEM(Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 96).TopPosZ(4, 19))
|
||||
ITEM(EditInt, number, HSizePosZ(104, 4).TopPosZ(4, 19))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 14).BottomPosZ(6, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 64).BottomPosZ(6, 24))
|
||||
ITEM(Upp::Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 96).TopPosZ(4, 19))
|
||||
ITEM(Upp::EditInt, number, HSizePosZ(104, 4).TopPosZ(4, 19))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 14).BottomPosZ(6, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 64).BottomPosZ(6, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(EditDoubleLayout, 236, 62)
|
||||
ITEM(Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 116).TopPosZ(4, 19))
|
||||
ITEM(EditDouble, number, HSizePosZ(124, 4).TopPosZ(4, 19))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 14).BottomPosZ(6, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 64).BottomPosZ(6, 24))
|
||||
ITEM(Upp::Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 116).TopPosZ(4, 19))
|
||||
ITEM(Upp::EditDouble, number, HSizePosZ(124, 4).TopPosZ(4, 19))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 14).BottomPosZ(6, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 64).BottomPosZ(6, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(EditDateLayout, 236, 62)
|
||||
ITEM(Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 120).TopPosZ(4, 19))
|
||||
ITEM(DropDate, date, HSizePosZ(128, 8).TopPosZ(4, 19))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 10).BottomPosZ(6, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(6, 24))
|
||||
ITEM(Upp::Label, lbl, SetLabel(t_("Test")).LeftPosZ(4, 120).TopPosZ(4, 19))
|
||||
ITEM(Upp::DropDate, date, HSizePosZ(128, 8).TopPosZ(4, 19))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).HCenterPosZ(64, 10).BottomPosZ(6, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(6, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(ProgressLayout, 320, 72)
|
||||
ITEM(Button, stop, SetLabel(t_("Cancel")).HCenterPosZ(68, 0).BottomPosZ(4, 24))
|
||||
ITEM(Upp::Button, stop, SetLabel(t_("Cancel")).HCenterPosZ(68, 0).BottomPosZ(4, 24))
|
||||
UNTYPED(pi, HSizePosZ(4, 4).TopPosZ(28, 12))
|
||||
ITEM(Label, info, HSizePosZ(4, 4).TopPosZ(4, 20))
|
||||
ITEM(Upp::Label, info, HSizePosZ(4, 4).TopPosZ(4, 20))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(CommentLayout, 400, 204)
|
||||
ITEM(DocEdit, text, HSizePosZ(8, 8).VSizePosZ(8, 40))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(80, 64).BottomPosZ(8, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
|
||||
ITEM(Upp::DocEdit, text, HSizePosZ(8, 8).VSizePosZ(8, 40))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).RightPosZ(80, 64).BottomPosZ(8, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(SimpleSelectLayout, 172, 184)
|
||||
ITEM(ArrayCtrl, list, HSizePosZ(4, 4).VSizePosZ(4, 34))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(74, 64).BottomPosZ(4, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 64).BottomPosZ(4, 24))
|
||||
ITEM(Upp::ArrayCtrl, list, HSizePosZ(4, 4).VSizePosZ(4, 34))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).RightPosZ(74, 64).BottomPosZ(4, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 64).BottomPosZ(4, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(FileSelectorLayout, 652, 408)
|
||||
ITEM(Label, dv___0, SetLabel(t_("&Directory")).LeftPosZ(8, 72).TopPosZ(6, 15))
|
||||
ITEM(DropList, dir, HSizePosZ(84, 8).TopPosZ(4, 19))
|
||||
ITEM(Upp::Label, dv___0, SetLabel(t_("&Directory")).LeftPosZ(8, 72).TopPosZ(6, 15))
|
||||
ITEM(Upp::DropList, dir, HSizePosZ(84, 8).TopPosZ(4, 19))
|
||||
ITEM(Splitter, splitter, HSizePosZ(8, 8).VSizePosZ(28, 116))
|
||||
ITEM(Label, filename, HSizePosZ(8, 208).BottomPosZ(92, 20))
|
||||
ITEM(Label, filesize, RightPosZ(148, 56).BottomPosZ(92, 20))
|
||||
ITEM(Label, filetime, RightPosZ(8, 136).BottomPosZ(92, 20))
|
||||
ITEM(Label, file_lbl, SetLabel(t_("&File")).LeftPosZ(8, 76).BottomPosZ(69, 19))
|
||||
ITEM(EditString, file, HSizePosZ(84, 8).BottomPosZ(69, 19))
|
||||
ITEM(Label, type_lbl, SetLabel(t_("&Type")).LeftPosZ(8, 76).BottomPosZ(45, 19))
|
||||
ITEM(DropList, type, HSizePosZ(84, 152).BottomPosZ(45, 19))
|
||||
ITEM(EditString, search, RightPosZ(8, 140).BottomPosZ(45, 19))
|
||||
ITEM(Label, sort_lbl, SetLabel(t_("&Sort by")).LeftPosZ(8, 76).BottomPosZ(21, 19))
|
||||
ITEM(DropList, sortby, LeftPosZ(84, 252).BottomPosZ(21, 19))
|
||||
ITEM(Option, hidden, SetLabel(t_("Show hidden items")).LeftPosZ(348, 152).BottomPosZ(22, 18))
|
||||
ITEM(Option, readonly, SetLabel(t_("Read only")).LeftPosZ(84, 84).BottomPosZ(4, 16))
|
||||
ITEM(Option, hiddenfiles, SetLabel(t_("Show hidden files")).LeftPosZ(348, 152).BottomPosZ(4, 16))
|
||||
ITEM(Button, ok, SetLabel(t_("Open")).RightPosZ(80, 68).BottomPosZ(8, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 68).BottomPosZ(8, 24))
|
||||
ITEM(Upp::Label, filename, HSizePosZ(8, 208).BottomPosZ(92, 20))
|
||||
ITEM(Upp::Label, filesize, RightPosZ(148, 56).BottomPosZ(92, 20))
|
||||
ITEM(Upp::Label, filetime, RightPosZ(8, 136).BottomPosZ(92, 20))
|
||||
ITEM(Upp::Label, file_lbl, SetLabel(t_("&File")).LeftPosZ(8, 76).BottomPosZ(69, 19))
|
||||
ITEM(Upp::EditString, file, HSizePosZ(84, 8).BottomPosZ(69, 19))
|
||||
ITEM(Upp::Label, type_lbl, SetLabel(t_("&Type")).LeftPosZ(8, 76).BottomPosZ(45, 19))
|
||||
ITEM(Upp::DropList, type, HSizePosZ(84, 152).BottomPosZ(45, 19))
|
||||
ITEM(Upp::EditString, search, RightPosZ(8, 140).BottomPosZ(45, 19))
|
||||
ITEM(Upp::Label, sort_lbl, SetLabel(t_("&Sort by")).LeftPosZ(8, 76).BottomPosZ(21, 19))
|
||||
ITEM(Upp::DropList, sortby, LeftPosZ(84, 252).BottomPosZ(21, 19))
|
||||
ITEM(Upp::Option, hidden, SetLabel(t_("Show hidden items")).LeftPosZ(348, 152).BottomPosZ(22, 18))
|
||||
ITEM(Upp::Option, readonly, SetLabel(t_("Read only")).LeftPosZ(84, 84).BottomPosZ(4, 16))
|
||||
ITEM(Upp::Option, hiddenfiles, SetLabel(t_("Show hidden files")).LeftPosZ(348, 152).BottomPosZ(4, 16))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("Open")).RightPosZ(80, 68).BottomPosZ(8, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 68).BottomPosZ(8, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(PaletteLayout, 216, 332)
|
||||
ITEM(TabCtrl, palette_tab, HSizePosZ(4, 4).VSizePosZ(4, 82))
|
||||
ITEM(Label, dv___1, SetLabel(t_("Color:")).LeftPosZ(4, 36).BottomPosZ(52, 24))
|
||||
ITEM(DataPusher, color, HSizePosZ(68, 32).BottomPosZ(54, 22))
|
||||
ITEM(Button, set_transparent, RightPosZ(4, 18).BottomPosZ(56, 18))
|
||||
ITEM(Upp::TabCtrl, palette_tab, HSizePosZ(4, 4).VSizePosZ(4, 82))
|
||||
ITEM(Upp::Label, dv___1, SetLabel(t_("Color:")).LeftPosZ(4, 36).BottomPosZ(52, 24))
|
||||
ITEM(Upp::DataPusher, color, HSizePosZ(68, 32).BottomPosZ(54, 22))
|
||||
ITEM(Upp::Button, set_transparent, RightPosZ(4, 18).BottomPosZ(56, 18))
|
||||
UNTYPED(fetch_color, RightPosZ(4, 18).BottomPosZ(30, 18))
|
||||
ITEM(Label, dv___5, SetLabel(t_("R:")).LeftPosZ(4, 12).BottomPosZ(29, 19))
|
||||
ITEM(EditIntSpin, r, LeftPosZ(16, 44).BottomPosZ(29, 19))
|
||||
ITEM(Label, dv___7, SetLabel(t_("G:")).LeftPosZ(72, 12).BottomPosZ(29, 19))
|
||||
ITEM(EditIntSpin, g, LeftPosZ(84, 44).BottomPosZ(29, 19))
|
||||
ITEM(Label, dv___9, SetLabel(t_("B:")).LeftPosZ(136, 12).BottomPosZ(29, 19))
|
||||
ITEM(EditIntSpin, b, LeftPosZ(150, 42).BottomPosZ(29, 19))
|
||||
ITEM(Label, dv___11, SetLabel(t_("H:")).LeftPosZ(4, 12).BottomPosZ(5, 19))
|
||||
ITEM(EditIntSpin, h, LeftPosZ(16, 44).BottomPosZ(5, 19))
|
||||
ITEM(Label, dv___13, SetLabel(t_("S:")).LeftPosZ(72, 12).BottomPosZ(5, 19))
|
||||
ITEM(EditIntSpin, s, LeftPosZ(84, 44).BottomPosZ(5, 19))
|
||||
ITEM(Label, dv___15, SetLabel(t_("V:")).LeftPosZ(136, 12).BottomPosZ(5, 19))
|
||||
ITEM(EditIntSpin, v, LeftPosZ(148, 44).BottomPosZ(5, 19))
|
||||
ITEM(Upp::Label, dv___5, SetLabel(t_("R:")).LeftPosZ(4, 12).BottomPosZ(29, 19))
|
||||
ITEM(Upp::EditIntSpin, r, LeftPosZ(16, 44).BottomPosZ(29, 19))
|
||||
ITEM(Upp::Label, dv___7, SetLabel(t_("G:")).LeftPosZ(72, 12).BottomPosZ(29, 19))
|
||||
ITEM(Upp::EditIntSpin, g, LeftPosZ(84, 44).BottomPosZ(29, 19))
|
||||
ITEM(Upp::Label, dv___9, SetLabel(t_("B:")).LeftPosZ(136, 12).BottomPosZ(29, 19))
|
||||
ITEM(Upp::EditIntSpin, b, LeftPosZ(150, 42).BottomPosZ(29, 19))
|
||||
ITEM(Upp::Label, dv___11, SetLabel(t_("H:")).LeftPosZ(4, 12).BottomPosZ(5, 19))
|
||||
ITEM(Upp::EditIntSpin, h, LeftPosZ(16, 44).BottomPosZ(5, 19))
|
||||
ITEM(Upp::Label, dv___13, SetLabel(t_("S:")).LeftPosZ(72, 12).BottomPosZ(5, 19))
|
||||
ITEM(Upp::EditIntSpin, s, LeftPosZ(84, 44).BottomPosZ(5, 19))
|
||||
ITEM(Upp::Label, dv___15, SetLabel(t_("V:")).LeftPosZ(136, 12).BottomPosZ(5, 19))
|
||||
ITEM(Upp::EditIntSpin, v, LeftPosZ(148, 44).BottomPosZ(5, 19))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(PaletteSelectorLayout, 248, 320)
|
||||
ITEM(Ctrl, palette, HSizePosZ(4, 4).VSizePosZ(4, 32))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(88, 80).BottomPosZ(4, 22))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 80).BottomPosZ(4, 22))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).RightPosZ(88, 80).BottomPosZ(4, 22))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 80).BottomPosZ(4, 22))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(PalCtrlSizeLayout, 206, 60)
|
||||
ITEM(Label, dv___0, SetLabel(t_("&Rows:")).LeftPosZ(4, 44).TopPosZ(4, 19))
|
||||
ITEM(EditIntSpin, rows, LeftPosZ(48, 50).TopPosZ(4, 19))
|
||||
ITEM(Label, dv___2, SetLabel(t_("&Columns:")).LeftPosZ(108, 44).TopPosZ(4, 19))
|
||||
ITEM(EditIntSpin, columns, LeftPosZ(152, 50).TopPosZ(4, 19))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(88, 80).BottomPosZ(4, 22))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 80).BottomPosZ(4, 22))
|
||||
ITEM(Upp::Label, dv___0, SetLabel(t_("&Rows:")).LeftPosZ(4, 44).TopPosZ(4, 19))
|
||||
ITEM(Upp::EditIntSpin, rows, LeftPosZ(48, 50).TopPosZ(4, 19))
|
||||
ITEM(Upp::Label, dv___2, SetLabel(t_("&Columns:")).LeftPosZ(108, 44).TopPosZ(4, 19))
|
||||
ITEM(Upp::EditIntSpin, columns, LeftPosZ(152, 50).TopPosZ(4, 19))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).RightPosZ(88, 80).BottomPosZ(4, 22))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 80).BottomPosZ(4, 22))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(KeysLayout, 604, 500)
|
||||
ITEM(ArrayCtrl, group, LeftPosZ(8, 116).TopPosZ(8, 452))
|
||||
ITEM(ArrayCtrl, keys, LeftPosZ(132, 464).TopPosZ(8, 452))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).LeftPosZ(464, 64).TopPosZ(468, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(532, 64).TopPosZ(468, 24))
|
||||
ITEM(Button, defaults, SetLabel(t_("Defaults")).LeftPosZ(8, 64).TopPosZ(468, 24))
|
||||
ITEM(Upp::ArrayCtrl, group, LeftPosZ(8, 116).TopPosZ(8, 452))
|
||||
ITEM(Upp::ArrayCtrl, keys, LeftPosZ(132, 464).TopPosZ(8, 452))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).LeftPosZ(464, 64).TopPosZ(468, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(532, 64).TopPosZ(468, 24))
|
||||
ITEM(Upp::Button, defaults, SetLabel(t_("Defaults")).LeftPosZ(8, 64).TopPosZ(468, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(PrinterLayout, 380, 276)
|
||||
ITEM(LabelBox, dv___0, SetLabel(t_("Printer")).HSizePosZ(8, 8).TopPosZ(8, 76))
|
||||
ITEM(Label, dv___1, SetLabel(t_("Printer")).LeftPosZ(16, 88).TopPosZ(28, 20))
|
||||
ITEM(DropList, printer, HSizePosZ(104, 16).TopPosZ(28, 19))
|
||||
ITEM(Label, dv___3, SetLabel(t_("Paper size")).LeftPosZ(16, 88).TopPosZ(52, 20))
|
||||
ITEM(DropList, paper, LeftPosZ(104, 92).TopPosZ(52, 19))
|
||||
ITEM(Label, dv___5, SetLabel(t_("Input slot")).LeftPosZ(204, 68).TopPosZ(52, 20))
|
||||
ITEM(DropList, slot, LeftPosZ(272, 92).TopPosZ(52, 19))
|
||||
ITEM(LabelBox, dv___7, SetLabel(t_("Print range")).LeftPosZ(8, 224).TopPosZ(92, 80))
|
||||
ITEM(Switch, range, SetLabel(t_("All pages\nCurrent page\nPages from")).LeftPosZ(16, 196).TopPosZ(112, 56))
|
||||
ITEM(EditIntSpin, from, LeftPosZ(112, 44).TopPosZ(136, 19))
|
||||
ITEM(Label, dv___10, SetLabel(t_("to")).LeftPosZ(160, 16).TopPosZ(140, 13))
|
||||
ITEM(EditIntSpin, to, LeftPosZ(176, 44).TopPosZ(136, 19))
|
||||
ITEM(LabelBox, dv___12, SetLabel(t_("Copies")).HSizePosZ(240, 8).TopPosZ(92, 80))
|
||||
ITEM(Label, dv___13, SetLabel(t_("Copies")).LeftPosZ(252, 56).TopPosZ(112, 20))
|
||||
ITEM(EditIntSpin, copies, RightPosZ(16, 56).TopPosZ(112, 19))
|
||||
ITEM(Option, collate, SetLabel(t_("Collate")).RightPosZ(16, 112).TopPosZ(140, 19))
|
||||
ITEM(LabelBox, dv___16, SetLabel(t_("Placement")).HSizePosZ(8, 8).TopPosZ(180, 52))
|
||||
ITEM(Switch, landscape, SetLabel(t_("Portrait\nLandscape")).LeftPosZ(16, 176).TopPosZ(200, 15))
|
||||
ITEM(Label, dv___18, SetLabel(t_("Pages per sheet")).LeftPosZ(196, 108).TopPosZ(200, 20))
|
||||
ITEM(DropList, npage, LeftPosZ(308, 56).TopPosZ(200, 19))
|
||||
ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(76, 64).BottomPosZ(8, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
|
||||
ITEM(Upp::LabelBox, dv___0, SetLabel(t_("Printer")).HSizePosZ(8, 8).TopPosZ(8, 76))
|
||||
ITEM(Upp::Label, dv___1, SetLabel(t_("Printer")).LeftPosZ(16, 88).TopPosZ(28, 20))
|
||||
ITEM(Upp::DropList, printer, HSizePosZ(104, 16).TopPosZ(28, 19))
|
||||
ITEM(Upp::Label, dv___3, SetLabel(t_("Paper size")).LeftPosZ(16, 88).TopPosZ(52, 20))
|
||||
ITEM(Upp::DropList, paper, LeftPosZ(104, 92).TopPosZ(52, 19))
|
||||
ITEM(Upp::Label, dv___5, SetLabel(t_("Input slot")).LeftPosZ(204, 68).TopPosZ(52, 20))
|
||||
ITEM(Upp::DropList, slot, LeftPosZ(272, 92).TopPosZ(52, 19))
|
||||
ITEM(Upp::LabelBox, dv___7, SetLabel(t_("Print range")).LeftPosZ(8, 224).TopPosZ(92, 80))
|
||||
ITEM(Upp::Switch, range, SetLabel(t_("All pages\nCurrent page\nPages from")).LeftPosZ(16, 196).TopPosZ(112, 56))
|
||||
ITEM(Upp::EditIntSpin, from, LeftPosZ(112, 44).TopPosZ(136, 19))
|
||||
ITEM(Upp::Label, dv___10, SetLabel(t_("to")).LeftPosZ(160, 16).TopPosZ(140, 13))
|
||||
ITEM(Upp::EditIntSpin, to, LeftPosZ(176, 44).TopPosZ(136, 19))
|
||||
ITEM(Upp::LabelBox, dv___12, SetLabel(t_("Copies")).HSizePosZ(240, 8).TopPosZ(92, 80))
|
||||
ITEM(Upp::Label, dv___13, SetLabel(t_("Copies")).LeftPosZ(252, 56).TopPosZ(112, 20))
|
||||
ITEM(Upp::EditIntSpin, copies, RightPosZ(16, 56).TopPosZ(112, 19))
|
||||
ITEM(Upp::Option, collate, SetLabel(t_("Collate")).RightPosZ(16, 112).TopPosZ(140, 19))
|
||||
ITEM(Upp::LabelBox, dv___16, SetLabel(t_("Placement")).HSizePosZ(8, 8).TopPosZ(180, 52))
|
||||
ITEM(Upp::Switch, landscape, SetLabel(t_("Portrait\nLandscape")).LeftPosZ(16, 176).TopPosZ(200, 15))
|
||||
ITEM(Upp::Label, dv___18, SetLabel(t_("Pages per sheet")).LeftPosZ(196, 108).TopPosZ(200, 20))
|
||||
ITEM(Upp::DropList, npage, LeftPosZ(308, 56).TopPosZ(200, 19))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).RightPosZ(76, 64).BottomPosZ(8, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
|
||||
END_LAYOUT
|
||||
|
||||
|
|
|
|||
|
|
@ -317,8 +317,9 @@ void Ide::Serialize(Stream& s)
|
|||
s.Magic();
|
||||
if(version >= 17)
|
||||
s % hlstyle_is_default;
|
||||
if(version >= 19)
|
||||
if(version >= 19) {
|
||||
s % gui_font % gui_font_override;
|
||||
}
|
||||
}
|
||||
|
||||
Time Ide::ConfigTime()
|
||||
|
|
|
|||
|
|
@ -1,17 +1,180 @@
|
|||
#include "ide.h"
|
||||
|
||||
static String GetSearchPhrase(AssistEditor& editor)
|
||||
String SearchEnginesFile()
|
||||
{
|
||||
return UrlEncode(Nvl(editor.GetSelection(), editor.GetWord()));
|
||||
return ConfigFile("search_engines.json");
|
||||
}
|
||||
|
||||
void Ide::OnlineSearch()
|
||||
Value LoadSearchEngines()
|
||||
{
|
||||
LaunchWebBrowser("https://www.google.com/search?q=" + GetSearchPhrase(editor));
|
||||
return ParseJSON(LoadFile(SearchEnginesFile()));
|
||||
}
|
||||
|
||||
void Ide::OnlineSearchOnTheOfficialSite()
|
||||
struct IconDisplay : Display {
|
||||
virtual Size GetStdSize(const Value&) { return DPI(16, 16); }
|
||||
virtual void Paint(Draw& w, const Rect& r, const Value& q, Color ink, Color paper, dword style) const
|
||||
{
|
||||
w.DrawRect(r, paper);
|
||||
Image m = StreamRaster::LoadStringAny(q);
|
||||
Point p = r.CenterPos(m.GetSize());
|
||||
w.DrawImage(p.x, p.y, m);
|
||||
}
|
||||
};
|
||||
|
||||
WebSearchTab::WebSearchTab()
|
||||
{
|
||||
LaunchWebBrowser("https://www.google.com/search?q=" + GetSearchPhrase(editor) +
|
||||
"&domains=www.ultimatepp.org&sitesearch=www.ultimatepp.org");
|
||||
list.AddColumn("Name", 5);
|
||||
list.AddColumn("URI", 5);
|
||||
list.AddColumn("Icon").SetDisplay(Single<IconDisplay>());
|
||||
list.Moving().RowName("search engine").Removing();
|
||||
list.WhenLeftDouble = [=] { Edit(); };
|
||||
list.SetLineCy(max(GetStdFontSize().cy, DPI(18)));
|
||||
list.WhenBar = [&](Bar& bar) {
|
||||
bool b = list.IsCursor();
|
||||
bar.Add("Add search engine", IdeImg::add(), [&] { Add(); }).Key(K_INSERT);
|
||||
bar.Add(b, "Edit search engine", IdeImg::pencil(), [&] { Edit(); }).Key(K_ENTER);
|
||||
bar.Add(b, "Set as default engine", IdeImg::star(), [&] { Default(); });
|
||||
list.StdBar(bar);
|
||||
};
|
||||
list.EvenRowColor();
|
||||
list.ColumnWidths("104 382 30");
|
||||
}
|
||||
|
||||
bool WebSearchTab::EditDlg(String& name, String& uri, String& ico)
|
||||
{
|
||||
WithWebSearchEngineLayout<TopWindow> dlg;
|
||||
CtrlLayoutOKCancel(dlg, "Web search engine setup");
|
||||
CtrlRetriever r;
|
||||
r(dlg.name, name)(dlg.uri, uri);
|
||||
if(dlg.Execute() == IDOK) {
|
||||
r.Retrieve();
|
||||
ico = Null;
|
||||
int q = uri.Find('/', max(0, uri.FindAfter("//")));
|
||||
if(q < 0)
|
||||
q = uri.GetCount();
|
||||
|
||||
Image r;
|
||||
Size wanted = DPI(16, 16);
|
||||
String data = HttpRequest(uri.Mid(0, q) + "/favicon.ico").RequestTimeout(3000).Execute();
|
||||
for(const Image& m : ReadIcon(data)) {
|
||||
Size isz = m.GetSize();
|
||||
if(isz == wanted) {
|
||||
r = m;
|
||||
break;
|
||||
}
|
||||
if(isz.cx > r.GetSize().cx)
|
||||
r = m;
|
||||
}
|
||||
if(IsNull(r))
|
||||
r = StreamRaster::LoadStringAny(data);
|
||||
DDUMP(r.GetSize());
|
||||
ico = IsNull(r) ? String() :
|
||||
PNGEncoder().SaveString(2 * r.GetSize() == wanted ? Upscale2x(r)
|
||||
: r.GetSize() == 2 * wanted ? Downscale2x(r)
|
||||
: Rescale(r, wanted));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void WebSearchTab::Add()
|
||||
{
|
||||
String name, uri, zico;
|
||||
if(EditDlg(name, uri, zico))
|
||||
list.Add(name, uri, zico);
|
||||
}
|
||||
|
||||
void WebSearchTab::Edit()
|
||||
{
|
||||
if(!list.IsCursor())
|
||||
return;
|
||||
String name = list.Get(0);
|
||||
String uri = list.Get(1);
|
||||
String zico = list.Get(2);
|
||||
if(EditDlg(name, uri, zico)) {
|
||||
list.Set(0, name);
|
||||
list.Set(1, uri);
|
||||
list.Set(2, zico);
|
||||
}
|
||||
}
|
||||
|
||||
void WebSearchTab::Default()
|
||||
{
|
||||
int i = list.GetCursor();
|
||||
if(i < 0) return;
|
||||
Vector<Value> v = list.GetLine(i);
|
||||
list.Remove(i);
|
||||
list.Insert(0, v);
|
||||
list.SetCursor(0);
|
||||
}
|
||||
|
||||
void WebSearchTab::Load()
|
||||
{
|
||||
for(Value se : LoadSearchEngines())
|
||||
list.Add(se["Name"], se["URI"], Decode64(se["Icon"]));
|
||||
}
|
||||
|
||||
void WebSearchTab::Save()
|
||||
{
|
||||
JsonArray ja;
|
||||
for(int i = 0; i < list.GetCount(); i++)
|
||||
ja << Upp::Json("Name", list.Get(i, 0))("URI", list.Get(i, 1))("Icon", Encode64(list.Get(i, 2)));
|
||||
|
||||
SaveChangedFile(SearchEnginesFile(), ja);
|
||||
}
|
||||
|
||||
void Ide::OnlineSearchMenu(Bar& menu)
|
||||
{
|
||||
static Time se_tm = Null;
|
||||
static Value se;
|
||||
|
||||
Time h = FileGetTime(SearchEnginesFile());
|
||||
if(h != se_tm) {
|
||||
se = LoadSearchEngines();
|
||||
se_tm = h;
|
||||
}
|
||||
|
||||
bool b = editor.IsSelection() || IsAlNum(editor.GetChar()) || editor.GetChar() == '_';
|
||||
|
||||
auto OnlineSearch = [=](const String& url) {
|
||||
String h = url;
|
||||
h.Replace("%s", UrlEncode(Nvl(editor.GetSelection(), editor.GetWord())));
|
||||
LaunchWebBrowser(h);
|
||||
};
|
||||
|
||||
auto Icon = [&](int i) {
|
||||
return StreamRaster::LoadStringAny(Decode64(se[i]["Icon"]));
|
||||
};
|
||||
|
||||
String name, uri;
|
||||
Image m;
|
||||
|
||||
if(se.GetCount()) {
|
||||
name = se[0]["Name"];
|
||||
uri = se[0]["URI"];
|
||||
m = Icon(0);
|
||||
}
|
||||
else {
|
||||
name = "Google";
|
||||
uri = "https://www.google.com/search?q=%s";
|
||||
}
|
||||
|
||||
using namespace IdeKeys;
|
||||
|
||||
menu.Add(b, "Search on " + name, Nvl(m, CtrlImg::Network()), [=] { OnlineSearch(uri); }).Key(AK_GOOGLE);
|
||||
menu.Add(b, AK_GOOGLEUPP, IdeImg::GoogleUpp(), [=] {
|
||||
OnlineSearch("https://www.google.com/search?q=%s"
|
||||
"&domains=www.ultimatepp.org&sitesearch=www.ultimatepp.org");
|
||||
});
|
||||
|
||||
if(!menu.IsMenuBar() || se.GetCount() < 2)
|
||||
return;
|
||||
|
||||
menu.Sub(b, "Search on...", [=](Bar& menu) {
|
||||
for(int i = 1; i < se.GetCount(); i++) {
|
||||
const String& name = se[i]["Name"];
|
||||
const String& uri = se[i]["URI"];
|
||||
menu.Add(b, name, Nvl(Icon(i), CtrlImg::Network()), [=] { OnlineSearch(uri); });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -390,6 +390,7 @@ void Ide::SetupFormat() {
|
|||
WithSetupEditorLayout<ParentCtrl> edt;
|
||||
WithSetupIdeLayout<ParentCtrl> ide;
|
||||
WithSetupAssistLayout<ParentCtrl> assist;
|
||||
WebSearchTab osm;
|
||||
AStyleSetupDialog ast(this);
|
||||
#ifdef PLATFORM_WIN32
|
||||
ide.console_txt.Hide();
|
||||
|
|
@ -430,6 +431,7 @@ void Ide::SetupFormat() {
|
|||
dlg.Add(assist, "Assist");
|
||||
dlg.Add(ide, "IDE");
|
||||
dlg.Add(ast, "Code formatting");
|
||||
dlg.Add(osm, "Web search");
|
||||
dlg.WhenClose = dlg.Acceptor(IDEXIT);
|
||||
|
||||
FontSelectManager ed, vf, con, f1, f2, tf, gui;
|
||||
|
|
@ -460,6 +462,8 @@ void Ide::SetupFormat() {
|
|||
|
||||
DlSpellerLangs(edt.spellcheck_comments);
|
||||
|
||||
osm.Load();
|
||||
|
||||
rtvr
|
||||
(hlt.hilite_scope, hs)
|
||||
(hlt.hilite_bracket, hilite_bracket)
|
||||
|
|
@ -611,6 +615,9 @@ void Ide::SetupFormat() {
|
|||
editor.SetHlStyle(i, hlt.hlstyle.Get(i, 1), hlt.hlstyle.Get(i, 2),
|
||||
hlt.hlstyle.Get(i, 3), hlt.hlstyle.Get(i, 4));
|
||||
UpdateFormat();
|
||||
|
||||
osm.Save();
|
||||
|
||||
if(c == IDEXIT)
|
||||
break;
|
||||
if(c == 222)
|
||||
|
|
|
|||
|
|
@ -293,4 +293,3 @@ void TopicCtrl::SShow()
|
|||
tl.topic = l[ss.page];
|
||||
GoTo(TopicLinkString(tl));
|
||||
}
|
||||
|
||||
|
|
@ -323,6 +323,17 @@ struct FindInFilesDlg : WithFindInFilesLayout<TopWindow> {
|
|||
FindInFilesDlg();
|
||||
};
|
||||
|
||||
struct WebSearchTab : WithWebSearchTabLayout<ParentCtrl> {
|
||||
void Load();
|
||||
void Save();
|
||||
bool EditDlg(String& name, String& uri, String& zico);
|
||||
void Add();
|
||||
void Edit();
|
||||
void Default();
|
||||
|
||||
WebSearchTab();
|
||||
};
|
||||
|
||||
struct Ide : public TopWindow, public WorkspaceWork, public IdeContext, public MakeBuild {
|
||||
public:
|
||||
virtual void Paint(Draw& w);
|
||||
|
|
@ -677,7 +688,7 @@ public:
|
|||
String current_builder;
|
||||
|
||||
bool hlstyle_is_default = true; // default style reacts to dark / light theme settings
|
||||
|
||||
|
||||
// ------------------------------------
|
||||
|
||||
Time config_time;
|
||||
|
|
@ -836,9 +847,9 @@ public:
|
|||
void GotoPosition();
|
||||
|
||||
void OnlineSearchMenu(Bar& menu);
|
||||
void OnlineSearch();
|
||||
void OnlineSearchOnTheOfficialSite();
|
||||
|
||||
void OnlineSearch(String uri);
|
||||
bool IsSearchProvidersMenuVisible() const;
|
||||
|
||||
void SearchMenu(Bar& bar);
|
||||
void EditFind() { editor.FindReplace(find_pick_sel, find_pick_text, false); }
|
||||
void EditReplace() { editor.FindReplace(find_pick_sel, find_pick_text, true); }
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ IMAGE_ID(arrow_up)
|
|||
IMAGE_ID(arrow_down)
|
||||
IMAGE_ID(ShowPointer1)
|
||||
IMAGE_ID(ShowPointer2)
|
||||
IMAGE_ID(star)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,152,139,109,235,48,12,69,141,78,208,17,50,106,182,232,58,65,23,227,123,78,42,135,150,200,75,234,199,32)
|
||||
|
|
@ -1377,3 +1378,26 @@ IMAGE_DATA(103,5,244,227,177,255,211,29,221,115,159,116,168,230,163,255,142,238,
|
|||
IMAGE_DATA(122,222,227,35,77,131,250,95,208,253,147,177,14,30,240,97,201,251,160,191,235,225,181,30,57,91,212,127,71,247,123,13)
|
||||
IMAGE_DATA(247,121,64,126,86,173,198,127,228,245,30,133,89,117,155,111,186,223,217,12,50,242,63,62,230,244,122,0,0,0,0,0)
|
||||
IMAGE_END_DATA(2016, 1)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,157,147,93,72,147,97,20,199,215,180,176,92,102,78,89,161,43,157,95,41,203,212,149,162,152,88,154,58,153,56)
|
||||
IMAGE_DATA(162,154,99,165,137,87,65,121,147,68,137,23,134,151,118,33,216,197,146,8,98,193,2,211,62,52,63,102,206,165,230,71)
|
||||
IMAGE_DATA(115,155,77,29,217,84,178,178,205,109,239,222,246,186,45,234,162,127,239,28,69,132,3,235,192,195,115,224,156,31,231,127)
|
||||
IMAGE_DATA(254,15,15,35,156,17,206,216,74,164,29,98,9,202,10,216,167,183,212,188,73,76,62,18,152,223,169,178,201,255,97,43)
|
||||
IMAGE_DATA(10,35,37,132,190,20,132,174,20,245,53,49,77,255,202,191,237,207,114,82,166,115,88,55,73,241,126,240,232,247,237,193)
|
||||
IMAGE_DATA(219,118,108,149,173,175,229,54,17,122,33,220,11,23,54,120,219,171,66,220,190,17,171,220,172,55,116,39,147,85,41,226)
|
||||
IMAGE_DATA(212,200,155,147,149,163,202,12,211,242,80,182,199,207,202,64,205,150,224,139,54,23,46,195,89,88,135,243,177,208,201,247)
|
||||
IMAGE_DATA(106,228,73,102,249,53,110,87,181,112,111,221,126,118,48,119,228,97,230,28,57,95,14,106,177,18,158,229,42,250,92,132)
|
||||
IMAGE_DATA(119,177,26,235,115,165,32,167,14,195,57,150,2,98,236,24,157,139,233,92,4,187,250,20,44,125,199,241,225,137,0,83)
|
||||
IMAGE_DATA(119,120,118,159,134,169,142,204,37,167,81,4,239,74,45,220,166,19,160,12,153,244,220,52,144,227,169,32,94,38,193,254)
|
||||
IMAGE_DATA(130,7,91,223,65,172,245,196,194,161,46,193,167,103,89,208,181,199,145,123,66,153,17,62,222,231,205,116,71,250,71,66)
|
||||
IMAGE_DATA(95,6,143,185,10,46,93,58,200,73,62,156,163,201,116,127,2,108,253,177,52,27,3,135,70,72,179,217,120,115,151,231)
|
||||
IMAGE_DATA(102,135,5,113,254,244,97,87,8,147,53,211,113,100,141,154,151,130,154,41,246,235,214,36,194,62,200,195,90,47,151,230)
|
||||
IMAGE_DATA(227,96,31,42,198,236,189,184,175,251,34,130,184,155,121,121,69,202,105,180,141,23,129,50,74,64,140,208,179,135,226,253)
|
||||
IMAGE_DATA(186,187,163,97,27,200,194,231,238,92,180,93,142,234,10,244,110,173,87,15,40,28,147,66,184,166,133,32,70,51,104,13)
|
||||
IMAGE_DATA(39,233,187,24,182,94,62,172,79,147,96,233,201,67,103,67,148,33,16,255,184,37,126,194,249,186,28,46,253,25,122,127)
|
||||
IMAGE_DATA(49,172,170,2,172,62,207,217,208,109,87,21,193,218,157,15,245,77,182,37,16,63,214,158,184,66,106,197,88,237,203,129)
|
||||
IMAGE_DATA(73,145,240,173,229,18,71,209,32,139,104,213,183,69,123,150,20,169,88,237,202,193,68,115,184,55,16,63,247,32,217,109)
|
||||
IMAGE_DATA(188,159,232,190,46,139,188,245,119,77,154,23,82,55,220,24,230,208,54,133,254,8,196,87,228,237,62,31,168,246,43,138)
|
||||
IMAGE_DATA(82,152,146,96,38,227,247,95,248,9,230,140,89,241,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(640, 1)
|
||||
|
|
|
|||
|
|
@ -880,3 +880,17 @@ LAYOUT(InsertAsLayout, 276, 168)
|
|||
ITEM(Upp::Label, dv___3, SetLabel(t_("Data length will be put into the clipboard")).LeftPosZ(8, 260).TopPosZ(108, 19))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(WebSearchEngineLayout, 564, 84)
|
||||
ITEM(Upp::Label, dv___0, SetLabel(t_("Name")).LeftPosZ(8, 72).TopPosZ(8, 19))
|
||||
ITEM(Upp::Label, dv___1, SetLabel(t_("URI")).LeftPosZ(8, 72).TopPosZ(32, 19))
|
||||
ITEM(Upp::EditString, name, NotNull(true).HSizePosZ(80, 4).TopPosZ(8, 19))
|
||||
ITEM(Upp::EditString, uri, NotNull(true).HSizePosZ(80, 4).VSizePosZ(32, 33))
|
||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).RightPosZ(72, 64).BottomPosZ(4, 24))
|
||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 64).BottomPosZ(4, 24))
|
||||
ITEM(Upp::Label, dv___6, SetLabel(t_("\001[g Use [* %s] as a placeholder for the search phrase")).LeftPosZ(8, 260).TopPosZ(60, 19))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(WebSearchTabLayout, 400, 200)
|
||||
ITEM(Upp::ArrayCtrl, list, HSizePosZ(4, 4).VSizePosZ(4, 4))
|
||||
END_LAYOUT
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@ uses
|
|||
ide/Java,
|
||||
ide/MacroManager,
|
||||
urepo,
|
||||
Report;
|
||||
Report,
|
||||
Core/SSL;
|
||||
|
||||
file
|
||||
IDE readonly separator,
|
||||
|
|
|
|||
|
|
@ -111,14 +111,6 @@ void Ide::File(Bar& menu)
|
|||
menu.Add(AK_EXIT, THISBACK(Exit));
|
||||
}
|
||||
|
||||
void Ide::OnlineSearchMenu(Bar& menu)
|
||||
{
|
||||
bool b = editor.IsSelection() || IsAlNum(editor.GetChar()) || editor.GetChar() == '_';
|
||||
menu.Add(b, AK_GOOGLE, IdeImg::Google(),
|
||||
THISBACK(OnlineSearch));
|
||||
menu.Add(b, AK_GOOGLEUPP, IdeImg::GoogleUpp(), THISBACK(OnlineSearchOnTheOfficialSite));
|
||||
}
|
||||
|
||||
void Ide::AssistEdit(Bar& menu)
|
||||
{
|
||||
bool b = !editor.IsReadOnly() && !designer;
|
||||
|
|
|
|||
|
|
@ -10,15 +10,24 @@ Vector<Image> ReadIcon(String data, bool just_best)
|
|||
Vector<Image> out;
|
||||
const byte *in = data;
|
||||
int count = Peek16le(in + OFFSETOF(BMP_ICONDIR, idCount));
|
||||
if(count < 0 || count > 100)
|
||||
return out;
|
||||
const byte *end = (const byte *)data.end();
|
||||
for(int i = 0; i < count; i++) {
|
||||
const byte *hdr = in + sizeof(BMP_ICONDIR) + i * sizeof(BMP_ICONDIRENTRY);
|
||||
if(hdr > end)
|
||||
return out;
|
||||
dword offset = Peek32le(hdr + OFFSETOF(BMP_ICONDIRENTRY, dwImageOffset));
|
||||
hdr = in + offset;
|
||||
int hdrsize = Peek32le(hdr + OFFSETOF(BMP_INFOHEADER, biSize));
|
||||
if(hdr + hdrsize > end)
|
||||
return out;
|
||||
Size bmpsz(
|
||||
Peek32le(hdr + OFFSETOF(BMP_INFOHEADER, biWidth)),
|
||||
Peek32le(hdr + OFFSETOF(BMP_INFOHEADER, biHeight)));
|
||||
Size size(bmpsz.cx, bmpsz.cy >> 1);
|
||||
if(size.cx < 0 || size.cx > 10000 || size.cy < 0 || size.cy > 10000)
|
||||
return out;
|
||||
int compression = Peek32le(hdr + OFFSETOF(BMP_INFOHEADER, biCompression));
|
||||
int bitcount = Peek16le(hdr + OFFSETOF(BMP_INFOHEADER, biBitCount));
|
||||
int clrused = Peek32le(hdr + OFFSETOF(BMP_INFOHEADER, biClrUsed));
|
||||
|
|
@ -68,9 +77,14 @@ Vector<Image> ReadIcon(String data, bool just_best)
|
|||
}
|
||||
|
||||
ImageBuffer buffer(size);
|
||||
for(int y = 0; y < size.cy; y++, hdr += rowbytes)
|
||||
for(int y = 0; y < size.cy; y++, hdr += rowbytes) {
|
||||
if(hdr + rowbytes > end)
|
||||
return out;
|
||||
fmt.Read(buffer[size.cy - y - 1], hdr, size.cx, palette.Begin());
|
||||
}
|
||||
for(int y = 0; y < size.cy; y++, hdr += maskbytes) {
|
||||
if(hdr + maskbytes > end)
|
||||
return out;
|
||||
const byte *in = hdr;
|
||||
RGBA *out = buffer[size.cy - y - 1];
|
||||
int cx = size.cx;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue