mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
GrabYourScreen: If you can watch it you can grab it
git-svn-id: svn://ultimatepp.org/upp/trunk@9307 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
819d058759
commit
96d2b4c4e6
11 changed files with 486 additions and 0 deletions
146
bazaar/GrabYourScreen/GrabBook.cpp
Normal file
146
bazaar/GrabYourScreen/GrabBook.cpp
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
#include "GrabYourScreen.h"
|
||||
|
||||
GrabBook::GrabBook() {
|
||||
CtrlLayout(*this);
|
||||
}
|
||||
|
||||
void GrabBook::Init() {
|
||||
initialPage = 0;
|
||||
actualPage = 0;
|
||||
left <<= 100;
|
||||
right <<= 1200;
|
||||
up <<= 100;
|
||||
down <<= 900;
|
||||
split = true;
|
||||
|
||||
folder = AppendFileName(GetDesktopFolder(), "Libro");
|
||||
|
||||
canvas.SetShowWindow(false);
|
||||
|
||||
canvas.WhenPaint = THISBACK(OnPaint);
|
||||
reset.WhenAction = THISBACK(OnReset);
|
||||
capture.WhenAction = THISBACK(OnCapture);
|
||||
savePDF.WhenAction = THISBACK(OnSavePDF);
|
||||
SetTimeCallback(-1000, THISBACK(Timer));
|
||||
|
||||
keyId = Ctrl::RegisterSystemHotKey(K_CTRL | K_F10, THISBACK(OnCapture));
|
||||
}
|
||||
|
||||
GrabBook::~GrabBook() {
|
||||
Ctrl::UnregisterSystemHotKey(keyId);
|
||||
}
|
||||
|
||||
void GrabBook::OnPaint(Painter &painter) {
|
||||
painter.Move(left, up).Line(right, up).Line(right, down).
|
||||
Line(left, down).Line(left, up).Stroke(2, Black());
|
||||
painter.Move(left, up).Line(right, down).Stroke(2, Black());
|
||||
painter.Move(right, up).Line(left, down).Stroke(2, Black());
|
||||
}
|
||||
|
||||
void GrabBook::OnReset() {
|
||||
actualPage = 0;
|
||||
initialPage = 0;
|
||||
}
|
||||
|
||||
void GrabBook::OnCapture() {
|
||||
Rect rPdf(left, up, right, down);
|
||||
Rect screenRect;
|
||||
::GetWindowRect(GetHWND(), screenRect);
|
||||
if (rPdf.Intersects(screenRect)) {
|
||||
Exclamation("Ventana del programa interfiere con imagen a tomar");
|
||||
return;
|
||||
}
|
||||
|
||||
Timer();
|
||||
|
||||
if (!DirectoryExists(folder))
|
||||
RealizeDirectory(folder);
|
||||
Image img = ::GetRect(canvas.GetBackground(), Rect(left, up, right, down));
|
||||
if (!SaveImage(img, 100, AppendFileName(folder, Format("Pag%04d.jpg", int(actualPage))), ".jpg"))
|
||||
Exclamation("Error saving image");
|
||||
actualPage = actualPage + 1;
|
||||
}
|
||||
|
||||
void GrabBook::OnSavePDF() {
|
||||
Report r;
|
||||
|
||||
int width, height;
|
||||
if (split) {
|
||||
width = 210;
|
||||
height = 297;
|
||||
} else {
|
||||
width = 297;
|
||||
height = 210;
|
||||
}
|
||||
r.SetPageSize((width-5-5)*6000/254, (height-5-5)*6000/254);
|
||||
r.Margins(5*6000/254, 5*6000/254);
|
||||
|
||||
String fileName;
|
||||
|
||||
FileSel fs;
|
||||
|
||||
fs.ActiveDir(GetDesktopFolder());
|
||||
fs.Type("Ficheros PDF", ".pdf");
|
||||
|
||||
if (fs.ExecuteSaveAs(t_("Saving file")))
|
||||
fileName = ~fs;
|
||||
else
|
||||
return;
|
||||
|
||||
WaitCursor wait;
|
||||
|
||||
ForceExt(fileName, ".pdf");
|
||||
|
||||
Size psz = r.GetPageSize();
|
||||
for(int i = initialPage; i < actualPage; ++i) {
|
||||
if (i > 0)
|
||||
r.NewPage();
|
||||
|
||||
String fileName = AppendFileName(folder, Format("Pag%04d.jpg", i));
|
||||
Image img = StreamRaster::LoadFileAny(fileName);
|
||||
Image imgIzq, imgDer;
|
||||
if (split) {
|
||||
imgIzq = ::GetRect(img, Rect(0, 0, img.GetWidth()/2, img.GetHeight()));
|
||||
imgDer = ::GetRect(img, Rect(img.GetWidth()/2 + 1, 0, img.GetWidth(), img.GetHeight()));
|
||||
} else
|
||||
imgIzq = img;
|
||||
|
||||
DrawingDraw dw(psz.cx, psz.cy);
|
||||
Rect rect = FitInFrame(psz, imgIzq.GetSize());
|
||||
dw.DrawImage(rect, imgIzq);
|
||||
QtfRichObject qrob(CreateDrawingObject(dw, psz.cx, psz.cy));
|
||||
String qtf;
|
||||
qtf << qrob;
|
||||
r << qtf;
|
||||
|
||||
if (split) {
|
||||
r.NewPage();
|
||||
DrawingDraw dw(psz.cx, psz.cy);
|
||||
Rect rect = FitInFrame(psz, imgDer.GetSize());
|
||||
dw.DrawImage(rect, imgDer);
|
||||
QtfRichObject qrob(CreateDrawingObject(dw, psz.cx, psz.cy));
|
||||
String qtf;
|
||||
qtf << qrob;
|
||||
r << qtf;
|
||||
}
|
||||
}
|
||||
|
||||
if (!SaveFile(fileName, UPP::Pdf(r))) {
|
||||
Exclamation(t_("It is not possible to save file.&Posibly .pdf file is already opened."));
|
||||
return;
|
||||
}
|
||||
LaunchFile(fileName);
|
||||
}
|
||||
|
||||
void GrabBook::Timer() {
|
||||
NON_REENTRANT_V;
|
||||
|
||||
canvas.SetBackground(Snap_Desktop());
|
||||
}
|
||||
|
||||
/*
|
||||
A añadir:
|
||||
- Seleccion manual de ventana (usando lo de Screen)
|
||||
- Paso automático de páginas
|
||||
- Barrido con zoom?
|
||||
*/
|
||||
142
bazaar/GrabYourScreen/GrabScreen.cpp
Normal file
142
bazaar/GrabYourScreen/GrabScreen.cpp
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
#include "GrabYourScreen.h"
|
||||
|
||||
GrabScreen::GrabScreen() {
|
||||
CtrlLayout(*this);
|
||||
}
|
||||
|
||||
void GrabScreen::Init(GrabYourScreen &_program) {
|
||||
program = &_program;
|
||||
editFileNameGrab <<= AppendFileName(GetDesktopFolder(), "ScreenGrab.avi");
|
||||
editTime <<= 5;
|
||||
editFrameRate <<= 1;
|
||||
opGrabMouse <<= true;
|
||||
swGrabMode.Add("Desktop");
|
||||
swGrabMode.Add("Window");
|
||||
#if defined(PLATFORM_WIN32)
|
||||
swGrabMode.Add("Rectangle");
|
||||
#endif
|
||||
swGrabMode.MinCaseHeight(20);
|
||||
swGrabMode.SetData(0);
|
||||
swGrabMode.WhenAction = THISBACK(SwGrabMode_Action);
|
||||
SwGrabMode_Action();
|
||||
#if defined(PLATFORM_WIN32)
|
||||
butGrab.WhenPush = THISBACK(ButGrab_Push);
|
||||
#else
|
||||
butGrab.Enable(false);
|
||||
editFileNameGrab.Enable(false);
|
||||
editTime.Enable(false);
|
||||
editFrameRate.Enable(false);
|
||||
opGrabMouse.Enable(false);
|
||||
editLeft.Hide();
|
||||
editTop.Hide();
|
||||
editWidth.Hide();
|
||||
editHeight.Hide();
|
||||
left.Hide();
|
||||
top.Hide();
|
||||
width.Hide();
|
||||
height.Hide();
|
||||
#endif
|
||||
|
||||
String extension;
|
||||
#if defined(PLATFORM_WIN32)
|
||||
extension = "bmp";
|
||||
#else
|
||||
extension = "xwd";
|
||||
#endif
|
||||
editFileNameSnap <<= AppendFileName(GetDesktopFolder(), "ScreenSnap." + extension);
|
||||
butSnap.WhenPush = THISBACK(ButSnap_Push);
|
||||
|
||||
Array<int64> hWnd, processId;
|
||||
Array<String> name, fileName, caption;
|
||||
GetWindowsList(hWnd, processId, name, fileName, caption);
|
||||
Sort(caption);
|
||||
for (int i = 0; i < caption.GetCount(); ++i) {
|
||||
if (!Trim(caption[i]).IsEmpty())
|
||||
editWindowTitle.Add(caption[i]);
|
||||
}
|
||||
editWindowTitle.SetData(editWindowTitle.GetValue(0));
|
||||
}
|
||||
|
||||
void GrabScreen::SwGrabMode_Action() {
|
||||
switch((int)swGrabMode.GetData()) {
|
||||
case 0:
|
||||
editLeft.Enable(false);
|
||||
editTop.Enable(false);
|
||||
editWidth.Enable(false);
|
||||
editHeight.Enable(false);
|
||||
editWindowTitle.Enable(false);
|
||||
break;
|
||||
case 1:
|
||||
editLeft.Enable(false);
|
||||
editTop.Enable(false);
|
||||
editWidth.Enable(false);
|
||||
editHeight.Enable(false);
|
||||
editWindowTitle.Enable(true);
|
||||
break;
|
||||
case 2:
|
||||
editLeft.Enable(true);
|
||||
editTop.Enable(true);
|
||||
editWidth.Enable(true);
|
||||
editHeight.Enable(true);
|
||||
editWindowTitle.Enable(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void GrabScreen::ButGrab_Push() {
|
||||
#if defined(PLATFORM_WIN32)
|
||||
FileDelete(editFileNameGrab.GetData().ToString());
|
||||
|
||||
bool ret;
|
||||
if (swGrabMode.GetData() == 0)
|
||||
ret = Record_Desktop(editFileNameGrab, editTime, editFrameRate, opGrabMouse);
|
||||
else if (swGrabMode.GetData() == 1)
|
||||
ret = Record_Window(editFileNameGrab, editTime, GetWindowIdFromCaption(~editWindowTitle, false), editFrameRate, opGrabMouse);
|
||||
else if (swGrabMode.GetData() == 2)
|
||||
ret = Record_DesktopRectangle(editFileNameGrab, editTime, editLeft, editTop, editWidth, editHeight, editFrameRate, opGrabMouse);
|
||||
else
|
||||
throw Exc("Unexpected value");
|
||||
if (!ret)
|
||||
Exclamation("Error on grabbing");
|
||||
#endif
|
||||
}
|
||||
|
||||
void GrabScreen::ButSnap_Push() {
|
||||
program->Minimize();
|
||||
|
||||
TopWindow win;
|
||||
Button b;
|
||||
b.SetLabel("CLOSE");
|
||||
b <<= win.Breaker();
|
||||
StaticImage image;
|
||||
image.Set(Snap_Desktop());
|
||||
win.Add(image.SizePos());
|
||||
win.Add(b.LeftPos(10, 100).TopPos(10, 30));
|
||||
|
||||
win.FullScreen().Run();
|
||||
|
||||
program->Overlap();
|
||||
return;
|
||||
|
||||
|
||||
|
||||
FileDelete(editFileNameSnap.GetData().ToString());
|
||||
|
||||
if (swGrabMode.GetData() == 0)
|
||||
Snap_Desktop(editFileNameSnap);
|
||||
else if (swGrabMode.GetData() == 1)
|
||||
Snap_Window(editFileNameSnap, GetWindowIdFromCaption(~editWindowTitle, false));
|
||||
else if (swGrabMode.GetData() == 2)
|
||||
Snap_DesktopRectangle(editFileNameSnap, editLeft, editTop, editWidth, editHeight);
|
||||
else
|
||||
throw Exc("Unexpected value");
|
||||
}
|
||||
|
||||
/*
|
||||
A añadir:
|
||||
- Listado de ventanas en Window Title
|
||||
- Pantalla completa para seleccionar. Meterlo en Controls4U
|
||||
- Jsonize para todos
|
||||
- Que deje salir si un campo está vacio
|
||||
- Ficheros con EditFile
|
||||
*/
|
||||
60
bazaar/GrabYourScreen/GrabYourScreen.h
Normal file
60
bazaar/GrabYourScreen/GrabYourScreen.h
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#ifndef _GrabYourScreen_GrabYourScreen_h
|
||||
#define _GrabYourScreen_GrabYourScreen_h
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <RichEdit/RichEdit.h>
|
||||
#include <Report/Report.h>
|
||||
#include <Controls4U/Controls4U.h>
|
||||
#include <SysInfo/SysInfo.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#define LAYOUTFILE <GrabYourScreen/GrabYourScreen.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
class GrabYourScreen;
|
||||
|
||||
class GrabScreen : public WithScreen<StaticRect> {
|
||||
public:
|
||||
typedef GrabScreen CLASSNAME;
|
||||
GrabScreen();
|
||||
|
||||
void Init(GrabYourScreen &program);
|
||||
void ButGrab_Push();
|
||||
void ButSnap_Push();
|
||||
void SwGrabMode_Action();
|
||||
|
||||
private:
|
||||
GrabYourScreen *program;
|
||||
};
|
||||
|
||||
class GrabBook : public WithBook<StaticRect> {
|
||||
public:
|
||||
typedef GrabBook CLASSNAME;
|
||||
GrabBook();
|
||||
~GrabBook();
|
||||
|
||||
void Init();
|
||||
void OnPaint(Painter &painter);
|
||||
void OnReset();
|
||||
void OnCapture();
|
||||
void OnSavePDF();
|
||||
void Timer();
|
||||
|
||||
int keyId;
|
||||
String folder;
|
||||
};
|
||||
|
||||
class GrabYourScreen : public TopWindow {
|
||||
public:
|
||||
typedef GrabYourScreen CLASSNAME;
|
||||
GrabYourScreen();
|
||||
void Init();
|
||||
void Exit();
|
||||
|
||||
TabCtrl mainTab;
|
||||
GrabScreen grabScreen;
|
||||
GrabBook grabBook;
|
||||
};
|
||||
|
||||
#endif
|
||||
50
bazaar/GrabYourScreen/GrabYourScreen.lay
Normal file
50
bazaar/GrabYourScreen/GrabYourScreen.lay
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
LAYOUT(Book, 368, 292)
|
||||
ITEM(Button, savePDF, SetLabel(t_("Save PDF")).HSizePosZ(8, 112).TopPosZ(132, 24))
|
||||
ITEM(Button, capture, SetLabel(t_("Capture - Ctrl-F10")).HSizePosZ(8, 4).TopPosZ(4, 24))
|
||||
ITEM(Label, dv___2, SetLabel(t_("Down:")).LeftPosZ(112, 36).TopPosZ(104, 21))
|
||||
ITEM(Label, dv___3, SetLabel(t_("Initial Page")).LeftPosZ(4, 76).TopPosZ(36, 21))
|
||||
ITEM(Label, dv___4, SetLabel(t_("Actual Page")).LeftPosZ(84, 76).TopPosZ(36, 21))
|
||||
ITEM(EditIntSpin, down, LeftPosZ(148, 56).TopPosZ(104, 19))
|
||||
ITEM(Label, dv___6, SetLabel(t_("Right:")).LeftPosZ(112, 36).TopPosZ(84, 21))
|
||||
ITEM(EditIntSpin, right, LeftPosZ(148, 56).TopPosZ(84, 19))
|
||||
ITEM(Label, dv___8, SetLabel(t_("Up:")).LeftPosZ(8, 36).TopPosZ(104, 21))
|
||||
ITEM(EditIntSpin, up, LeftPosZ(44, 64).TopPosZ(104, 19))
|
||||
ITEM(Label, dv___10, SetLabel(t_("Left:")).LeftPosZ(8, 36).TopPosZ(84, 21))
|
||||
ITEM(EditIntSpin, left, LeftPosZ(44, 64).TopPosZ(84, 19))
|
||||
ITEM(EditIntNotNull, initialPage, LeftPosZ(4, 64).TopPosZ(56, 19))
|
||||
ITEM(EditIntNotNull, actualPage, LeftPosZ(84, 64).TopPosZ(56, 19))
|
||||
ITEM(PainterCanvas, canvas, SetShowWindow(false).SetFrame(ThinInsetFrame()).HSizePosZ(4, 4).VSizePosZ(164, 4))
|
||||
ITEM(Button, reset, SetLabel(t_("Reset")).LeftPosZ(156, 48).TopPosZ(52, 24))
|
||||
ITEM(Option, split, SetLabel(t_("Split in two")).RightPosZ(4, 84).TopPosZ(136, 16))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(Screen, 464, 204)
|
||||
ITEM(LabelBox, dv___0, SetLabel(t_("Image Snapshot")).LeftPosZ(8, 452).TopPosZ(68, 40))
|
||||
ITEM(LabelBox, dv___1, SetLabel(t_("Video Grab")).LeftPosZ(8, 452).TopPosZ(4, 60))
|
||||
ITEM(LabelBox, dv___2, SetLabel(t_("Mode")).LeftPosZ(8, 452).TopPosZ(112, 84))
|
||||
ITEM(Label, dv___3, SetLabel(t_("secs/frame")).LeftPosZ(220, 56).TopPosZ(40, 19))
|
||||
ITEM(Label, top, SetLabel(t_("Top:")).LeftPosZ(176, 24).TopPosZ(168, 19))
|
||||
ITEM(Label, width, SetLabel(t_("Width:")).LeftPosZ(256, 36).TopPosZ(168, 19))
|
||||
ITEM(Label, height, SetLabel(t_("Height:")).LeftPosZ(348, 40).TopPosZ(168, 19))
|
||||
ITEM(EditString, editFileNameSnap, NotNull(true).LeftPosZ(72, 316).TopPosZ(84, 19))
|
||||
ITEM(EditString, editFileNameGrab, NotNull(true).LeftPosZ(72, 316).TopPosZ(20, 19))
|
||||
ITEM(EditIntNotNull, editTime, Min(1).LeftPosZ(72, 32).TopPosZ(40, 19))
|
||||
ITEM(EditDoubleNotNull, editFrameRate, LeftPosZ(196, 24).TopPosZ(40, 19))
|
||||
ITEM(Option, opGrabMouse, SetLabel(t_("Grab mouse")).LeftPosZ(288, 76).TopPosZ(44, 16))
|
||||
ITEM(Switch, swGrabMode, LeftPosZ(16, 80).TopPosZ(128, 64))
|
||||
ITEM(EditInt, editLeft, Min(0).LeftPosZ(120, 44).TopPosZ(168, 19))
|
||||
ITEM(EditInt, editTop, Min(0).LeftPosZ(200, 44).TopPosZ(168, 19))
|
||||
ITEM(EditInt, editWidth, Min(0).LeftPosZ(292, 44).TopPosZ(168, 19))
|
||||
ITEM(EditInt, editHeight, Min(0).LeftPosZ(388, 44).TopPosZ(168, 19))
|
||||
ITEM(Label, left, SetLabel(t_("Left:")).LeftPosZ(96, 24).TopPosZ(168, 19))
|
||||
ITEM(Label, dv___18, SetLabel(t_("Window Title:")).LeftPosZ(96, 64).TopPosZ(148, 19))
|
||||
ITEM(Label, dv___19, SetLabel(t_("File Name:")).LeftPosZ(16, 52).TopPosZ(84, 19))
|
||||
ITEM(Label, dv___20, SetLabel(t_("File Name:")).LeftPosZ(16, 52).TopPosZ(20, 19))
|
||||
ITEM(Button, butSnap, SetLabel(t_("Snap it!")).LeftPosZ(392, 56).TopPosZ(84, 20))
|
||||
ITEM(Button, butGrab, SetLabel(t_("Record it!")).LeftPosZ(392, 56).TopPosZ(20, 40))
|
||||
ITEM(Label, dv___23, SetLabel(t_("Frame rate:")).LeftPosZ(140, 56).TopPosZ(40, 19))
|
||||
ITEM(Label, dv___24, SetLabel(t_("sec")).LeftPosZ(104, 24).TopPosZ(40, 19))
|
||||
ITEM(Label, dv___25, SetLabel(t_("Time:")).LeftPosZ(16, 52).TopPosZ(40, 19))
|
||||
ITEM(DropList, editWindowTitle, LeftPosZ(164, 268).TopPosZ(148, 19))
|
||||
END_LAYOUT
|
||||
|
||||
20
bazaar/GrabYourScreen/GrabYourScreen.upp
Normal file
20
bazaar/GrabYourScreen/GrabYourScreen.upp
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
description "If you can watch it, you can get it!\377";
|
||||
|
||||
uses
|
||||
CtrlLib,
|
||||
Controls4U,
|
||||
SysInfo,
|
||||
Report;
|
||||
|
||||
file
|
||||
main.cpp,
|
||||
GrabBook.cpp,
|
||||
GrabScreen.cpp,
|
||||
GrabYourScreen.h,
|
||||
GrabYourScreen.lay,
|
||||
iml.iml,
|
||||
rc.rc;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI SSE2";
|
||||
|
||||
BIN
bazaar/GrabYourScreen/icon.ico
Normal file
BIN
bazaar/GrabYourScreen/icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
BIN
bazaar/GrabYourScreen/icon16x16.png
Normal file
BIN
bazaar/GrabYourScreen/icon16x16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 662 B |
28
bazaar/GrabYourScreen/iml.iml
Normal file
28
bazaar/GrabYourScreen/iml.iml
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
PREMULTIPLIED
|
||||
IMAGE_ID(Computer) IMAGE_META("exp", "")
|
||||
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,141,147,223,75,83,97,24,199,149,46,21,242,166,191,69,48,240,162,171,188,8,18,196,44,188,83,112,52,150,203)
|
||||
IMAGE_DATA(45,83,154,107,130,41,42,139,54,181,150,201,180,72,36,131,185,185,205,114,7,219,230,54,61,30,143,251,225,118,246,195)
|
||||
IMAGE_DATA(29,119,116,106,132,89,18,68,20,93,124,123,223,55,23,4,37,30,248,114,224,240,124,222,239,247,125,158,231,148,85,149)
|
||||
IMAGE_DATA(85,149,157,245,49,153,76,147,145,72,228,103,56,28,70,32,16,0,199,113,88,88,88,128,211,233,132,86,171,157,249,31)
|
||||
IMAGE_DATA(87,89,89,121,126,112,112,240,181,44,203,216,219,123,15,185,176,11,89,86,144,167,202,23,112,116,244,25,211,211,211,248)
|
||||
IMAGE_DATA(23,91,83,83,115,217,235,245,238,43,138,130,195,195,67,172,9,49,68,86,214,17,10,11,8,134,120,4,131,171,200,230)
|
||||
IMAGE_DATA(100,216,237,118,196,227,241,31,201,100,146,190,33,138,34,120,158,71,40,20,130,223,239,135,207,231,3,57,135,101,157,157)
|
||||
IMAGE_DATA(157,101,126,35,35,163,176,88,172,72,103,242,176,217,108,160,236,241,241,23,40,74,145,169,160,236,98,155,102,221,222,249)
|
||||
IMAGE_DATA(147,53,71,244,241,232,19,243,123,231,143,128,91,10,65,74,111,145,115,44,136,70,163,140,107,188,231,36,114,225,154,193)
|
||||
IMAGE_DATA(133,166,158,121,52,25,221,184,126,223,131,27,38,47,174,116,204,32,147,149,153,159,217,108,198,208,208,16,82,82,14,195)
|
||||
IMAGE_DATA(195,195,16,4,129,121,82,78,245,48,140,155,143,86,160,182,242,208,140,10,104,127,44,66,107,139,50,62,157,206,51,191)
|
||||
IMAGE_DATA(69,46,136,183,139,1,146,59,131,190,190,62,144,217,176,222,54,245,184,161,182,172,66,51,178,134,91,99,235,208,62,217)
|
||||
IMAGE_DATA(192,237,167,49,232,158,37,24,95,242,123,201,79,161,241,213,85,36,8,111,52,26,217,76,233,92,104,86,202,181,159,112)
|
||||
IMAGE_DATA(29,132,211,79,108,226,142,61,197,248,100,234,183,223,165,231,23,81,61,90,141,120,34,141,174,174,46,214,99,218,35,122)
|
||||
IMAGE_DATA(79,154,213,226,200,194,50,151,59,209,22,238,78,165,25,95,242,115,123,56,184,220,28,98,241,20,116,58,29,60,30,15)
|
||||
IMAGE_DATA(182,73,175,105,205,105,74,73,91,204,207,53,239,195,156,107,17,209,88,10,26,141,6,14,135,3,197,226,62,36,41,131)
|
||||
IMAGE_DATA(205,164,132,141,104,130,237,201,50,217,19,126,109,131,244,87,36,251,35,146,254,101,137,159,30,14,194,58,230,222,144,186)
|
||||
IMAGE_DATA(36,84,42,21,154,155,155,205,189,189,189,162,193,96,16,201,249,34,201,88,160,115,30,31,31,167,121,191,211,59,247,15)
|
||||
IMAGE_DATA(12,224,65,255,0,38,167,94,48,142,234,224,224,3,90,91,91,255,218,223,218,218,218,246,182,182,182,165,224,114,152,229)
|
||||
IMAGE_DATA(235,236,236,252,86,87,87,55,209,210,210,178,169,215,235,233,255,2,181,90,13,82,3,242,13,245,245,245,153,18,91,81)
|
||||
IMAGE_DATA(81,113,193,106,181,146,185,74,80,118,138,108,247,20,178,23,164,254,235,89,254,211,242,242,242,115,228,62,52,63,186,187)
|
||||
IMAGE_DATA(187,81,242,107,104,104,16,78,227,126,1,218,229,112,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(704, 1)
|
||||
7
bazaar/GrabYourScreen/init
Normal file
7
bazaar/GrabYourScreen/init
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef _GrabYourScreen_icpp_init_stub
|
||||
#define _GrabYourScreen_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "Controls4U/init"
|
||||
#include "SysInfo/init"
|
||||
#include "Report/init"
|
||||
#endif
|
||||
32
bazaar/GrabYourScreen/main.cpp
Normal file
32
bazaar/GrabYourScreen/main.cpp
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include "GrabYourScreen.h"
|
||||
|
||||
#define IMAGEFILE <GrabYourScreen/iml.iml>
|
||||
#define IMAGECLASS Images
|
||||
#include <Draw/iml.h>
|
||||
|
||||
GrabYourScreen::GrabYourScreen() {
|
||||
Icon(Images::Computer());
|
||||
LargeIcon(Images::Computer());
|
||||
Sizeable().Zoomable();//.TopMost(true, true);
|
||||
}
|
||||
|
||||
void GrabYourScreen::Init() {
|
||||
Title("GrabYourScreen");
|
||||
|
||||
Add(mainTab.SizePos());
|
||||
grabBook.Init();
|
||||
mainTab.Add(grabBook.SizePos(), "Book");
|
||||
grabScreen.Init(*this);
|
||||
mainTab.Add(grabScreen.SizePos(), "Screen");
|
||||
}
|
||||
|
||||
void GrabYourScreen::Exit() {
|
||||
Break();
|
||||
}
|
||||
|
||||
GUI_APP_MAIN {
|
||||
GrabYourScreen program;
|
||||
program.Open();
|
||||
program.Init();
|
||||
program.Run();
|
||||
}
|
||||
1
bazaar/GrabYourScreen/rc.rc
Normal file
1
bazaar/GrabYourScreen/rc.rc
Normal file
|
|
@ -0,0 +1 @@
|
|||
5555 ICON DISCARDABLE "icon.ico"
|
||||
Loading…
Add table
Add a link
Reference in a new issue