mirror of
https://github.com/n5ac/mmsstv.git
synced 2025-12-06 04:12:03 +01:00
606 lines
18 KiB
C
606 lines
18 KiB
C
|
|
//Copyright+LGPL
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
// Copyright 2000-2013 Makoto Mori, Nobuyuki Oba
|
|||
|
|
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
// This file is part of MMSSTV.
|
|||
|
|
|
|||
|
|
// MMSSTV is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
|
|||
|
|
// as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|||
|
|
|
|||
|
|
// MMSSTV is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|||
|
|
|
|||
|
|
// You should have received a copy of the GNU Lesser General Public License along with MMTTY. If not, see
|
|||
|
|
// <http://www.gnu.org/licenses/>.
|
|||
|
|
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
#ifndef DrawH
|
|||
|
|
#define DrawH
|
|||
|
|
#include <OleCtnrs.hpp>
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
extern LPCSTR _ShapePIC[2][7];
|
|||
|
|
extern LPCSTR _ShapeBOX[2][7];
|
|||
|
|
|
|||
|
|
#define TEXT24BIT FALSE
|
|||
|
|
|
|||
|
|
|
|||
|
|
#define POINT TPoint
|
|||
|
|
|
|||
|
|
TColor __fastcall GetNearestColor(TColor col);
|
|||
|
|
void __fastcall DrawTrans(TCanvas *tp, int x, int y);
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
// CLIBL<42>N<EFBFBD><4E><EFBFBD>X
|
|||
|
|
typedef struct {
|
|||
|
|
LPCSTR pName;
|
|||
|
|
//HANDLE hLib;
|
|||
|
|
HINSTANCE hLib; //ja7ude 0521
|
|||
|
|
}LIBD;
|
|||
|
|
|
|||
|
|
class CLIBL {
|
|||
|
|
public:
|
|||
|
|
int m_AMax;
|
|||
|
|
int m_Count;
|
|||
|
|
LIBD *m_pBase;
|
|||
|
|
private:
|
|||
|
|
void __fastcall Alloc(void);
|
|||
|
|
void __fastcall Add(LPCSTR pName, HANDLE hLib);
|
|||
|
|
public:
|
|||
|
|
CLIBL(){
|
|||
|
|
m_pBase = NULL;
|
|||
|
|
Delete();
|
|||
|
|
};
|
|||
|
|
~CLIBL(){
|
|||
|
|
Delete();
|
|||
|
|
};
|
|||
|
|
void __fastcall Delete(void);
|
|||
|
|
HANDLE __fastcall LoadLibrary(LPCSTR pName);
|
|||
|
|
void __fastcall DeleteLibrary(HANDLE hLib);
|
|||
|
|
};
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
typedef struct {
|
|||
|
|
double ax;
|
|||
|
|
double ay;
|
|||
|
|
double px;
|
|||
|
|
double py;
|
|||
|
|
double pz;
|
|||
|
|
double rz;
|
|||
|
|
double rx;
|
|||
|
|
double ry;
|
|||
|
|
double v;
|
|||
|
|
double s;
|
|||
|
|
}SPERSPECT;
|
|||
|
|
void __fastcall Perspect(Graphics::TBitmap *pSrc, Graphics::TBitmap *pTer, const SPERSPECT *pPar, TColor back);
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
CM_SELECT,
|
|||
|
|
CM_GROUP,
|
|||
|
|
CM_LINE,
|
|||
|
|
CM_BOX,
|
|||
|
|
CM_TEXT,
|
|||
|
|
CM_PIC,
|
|||
|
|
CM_BOXS,
|
|||
|
|
CM_TITLE,
|
|||
|
|
CM_OLE,
|
|||
|
|
CM_LIB,
|
|||
|
|
|
|||
|
|
CM_TLIST=0x8000,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
HT_NONE,
|
|||
|
|
HT_P1, // line
|
|||
|
|
HT_P2, // line
|
|||
|
|
HT_PM, // line
|
|||
|
|
HT_LT, // box
|
|||
|
|
HT_RT,
|
|||
|
|
HT_LB,
|
|||
|
|
HT_RB,
|
|||
|
|
HT_L,
|
|||
|
|
HT_T,
|
|||
|
|
HT_R,
|
|||
|
|
HT_B,
|
|||
|
|
HT_I,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDraw
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Command;
|
|||
|
|
int m_Ver;
|
|||
|
|
int m_X1, m_Y1;
|
|||
|
|
int m_X2, m_Y2;
|
|||
|
|
TColor m_LineColor;
|
|||
|
|
TPenStyle m_LineStyle;
|
|||
|
|
int m_LineWidth;
|
|||
|
|
int m_BoxStyle;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
int m_Cursor;
|
|||
|
|
int m_CX1, m_CY1;
|
|||
|
|
int m_CX2, m_CY2;
|
|||
|
|
int m_BX, m_BY;
|
|||
|
|
int m_MF;
|
|||
|
|
int m_MC;
|
|||
|
|
public:
|
|||
|
|
TCanvas *pc;
|
|||
|
|
TPaintBox *pBox;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
__fastcall CDraw();
|
|||
|
|
virtual __fastcall ~CDraw(){};
|
|||
|
|
virtual void __fastcall Start(TCanvas *tp, int X, int Y);
|
|||
|
|
virtual int __fastcall Finish(int X, int Y){return FALSE;};
|
|||
|
|
virtual void __fastcall Draw(TCanvas *tp){};
|
|||
|
|
virtual void __fastcall DrawFast(TCanvas *tp){Draw(tp);};
|
|||
|
|
virtual void __fastcall DrawSel(TCanvas *tp, int sw){};
|
|||
|
|
virtual void __fastcall FillPic(TCanvas *tp, TColor col, int sw, double sx, double sy, int off){};
|
|||
|
|
virtual void __fastcall Making(int X, int Y){};
|
|||
|
|
virtual void __fastcall UpdatePic(Graphics::TBitmap *pBmp){};
|
|||
|
|
virtual int __fastcall HitTest(int x, int y){return FALSE;};
|
|||
|
|
virtual void __fastcall StartMove(TCanvas *tp, int X, int Y, int code);
|
|||
|
|
virtual void __fastcall Moving(int X, int Y){};
|
|||
|
|
virtual void __fastcall Move(int X, int Y){};
|
|||
|
|
virtual int __fastcall IsMove(void){return m_MF;};
|
|||
|
|
virtual int __fastcall Edit(void);
|
|||
|
|
virtual int __fastcall Color(void);
|
|||
|
|
virtual void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
virtual int __fastcall LoadFromStream(TCanvas *tp, TStream *sp);
|
|||
|
|
virtual void __fastcall Copy(CDraw *dp);
|
|||
|
|
virtual void __fastcall SaveString(TStream *sp, AnsiString &as);
|
|||
|
|
virtual void __fastcall LoadString(TStream *sp, AnsiString &as);
|
|||
|
|
virtual void __fastcall UpdateText(void){};
|
|||
|
|
virtual void __fastcall UpdateTimeText(void){};
|
|||
|
|
virtual int __fastcall IsTimeMacro(void){return 0;};
|
|||
|
|
// TColor GetCol(TColor c1, TColor c2, int x, int xw);
|
|||
|
|
void __fastcall Normal(void);
|
|||
|
|
void __fastcall SaveBitmap(TStream *sp, Graphics::TBitmap *pBitmap);
|
|||
|
|
int __fastcall LoadBitmap(TStream *sp, Graphics::TBitmap *pBitmap);
|
|||
|
|
void __fastcall AdjustRect(void);
|
|||
|
|
virtual void __fastcall ReleaseResource(void){};
|
|||
|
|
virtual int __fastcall IsOrgSize(void){return TRUE;};
|
|||
|
|
virtual void __fastcall SetOrgSize(void){};
|
|||
|
|
virtual void __fastcall KeepAspect(void){};
|
|||
|
|
virtual LPCSTR __fastcall GetText(void){return NULL;};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawLine : public CDraw
|
|||
|
|
{
|
|||
|
|
private:
|
|||
|
|
void __fastcall DrawCursor(void);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawLine();
|
|||
|
|
virtual __fastcall ~CDrawLine(){};
|
|||
|
|
virtual int __fastcall Finish(int X, int Y);
|
|||
|
|
virtual void __fastcall Draw(TCanvas *tp);
|
|||
|
|
virtual void __fastcall DrawSel(TCanvas *tp, int sw);
|
|||
|
|
virtual void __fastcall Making(int X, int Y);
|
|||
|
|
virtual int __fastcall HitTest(int x, int y);
|
|||
|
|
virtual void __fastcall Moving(int X, int Y);
|
|||
|
|
virtual void __fastcall Move(int X, int Y);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawBox : public CDraw
|
|||
|
|
{
|
|||
|
|
private:
|
|||
|
|
protected:
|
|||
|
|
void __fastcall DrawCursor(void);
|
|||
|
|
void __fastcall RoundRect(TCanvas *tp, int xw, int yw);
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawBox();
|
|||
|
|
virtual __fastcall ~CDrawBox(){};
|
|||
|
|
|
|||
|
|
virtual int __fastcall Finish(int X, int Y);
|
|||
|
|
virtual void __fastcall Draw(TCanvas *tp);
|
|||
|
|
virtual void __fastcall DrawSel(TCanvas *tp, int sw);
|
|||
|
|
virtual void __fastcall Making(int X, int Y);
|
|||
|
|
virtual int __fastcall HitTest(int X, int Y);
|
|||
|
|
virtual void __fastcall Moving(int X, int Y);
|
|||
|
|
virtual void __fastcall Move(int X, int Y);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawBoxS : public CDrawBox
|
|||
|
|
{
|
|||
|
|
private:
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawBoxS();
|
|||
|
|
virtual __fastcall ~CDrawBoxS(){};
|
|||
|
|
|
|||
|
|
virtual void __fastcall Draw(TCanvas *tp);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawTitle : public CDrawBox
|
|||
|
|
{
|
|||
|
|
private:
|
|||
|
|
public:
|
|||
|
|
int m_Type;
|
|||
|
|
int m_ColVert;
|
|||
|
|
TColor m_Col1;
|
|||
|
|
TColor m_Col2;
|
|||
|
|
TColor m_Col3;
|
|||
|
|
TColor m_Col4;
|
|||
|
|
AnsiString m_Sound;
|
|||
|
|
Graphics::TBitmap *pBitmap;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawTitle();
|
|||
|
|
__fastcall ~CDrawTitle();
|
|||
|
|
|
|||
|
|
// virtual int HitTest(int x, int y){return CDrawBox::HitTest(x, y) ? HT_I : HT_NONE;};
|
|||
|
|
int __fastcall HitTest(int x, int y);
|
|||
|
|
void __fastcall Start(TCanvas *tp, int X, int Y);
|
|||
|
|
int __fastcall Finish(int X, int Y);
|
|||
|
|
void __fastcall FillPic(TCanvas *tp, TColor col, int sw, double sx, double sy, int off);
|
|||
|
|
void __fastcall Draw(TCanvas *tp);
|
|||
|
|
void __fastcall DrawFast(TCanvas *tp);
|
|||
|
|
void __fastcall StartMove(TCanvas *tp, int X, int Y, int code);
|
|||
|
|
void __fastcall Moving(int X, int Y);
|
|||
|
|
void __fastcall Move(int X, int Y);
|
|||
|
|
int __fastcall Edit(void);
|
|||
|
|
int __fastcall Color(void){return Edit();};
|
|||
|
|
void __fastcall Copy(CDraw *dp);
|
|||
|
|
|
|||
|
|
void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
int __fastcall LoadFromStream(TCanvas *tp, TStream *sp);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawText : public CDrawBoxS
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Grade;
|
|||
|
|
int m_Shadow;
|
|||
|
|
int m_Zero;
|
|||
|
|
int m_Rot;
|
|||
|
|
int m_RightAdj;
|
|||
|
|
int m_PerSpect;
|
|||
|
|
int m_Stack;
|
|||
|
|
int m_StackPara;
|
|||
|
|
int m_Vert;
|
|||
|
|
int m_VertH;
|
|||
|
|
SPERSPECT m_sperspect;
|
|||
|
|
AnsiString m_Text;
|
|||
|
|
TFont *pFont;
|
|||
|
|
TColor m_Col1;
|
|||
|
|
TColor m_Col2;
|
|||
|
|
TColor m_Col3;
|
|||
|
|
TColor m_Col4;
|
|||
|
|
TColor m_ColS;
|
|||
|
|
TColor m_ColB;
|
|||
|
|
Graphics::TBitmap *pBitmap;
|
|||
|
|
Graphics::TBitmap *pBrushBitmap;
|
|||
|
|
int m_X;
|
|||
|
|
int m_Y;
|
|||
|
|
private:
|
|||
|
|
Graphics::TBitmap * __fastcall ConvToDDB(Graphics::TBitmap *pBmp);
|
|||
|
|
Graphics::TBitmap * __fastcall ConvToDIB(Graphics::TBitmap *pBmp);
|
|||
|
|
Graphics::TBitmap * __fastcall DupeB(TColor col);
|
|||
|
|
|
|||
|
|
void __fastcall MakeBitmap();
|
|||
|
|
int __fastcall ZeroConv(BYTE charset, LPSTR p);
|
|||
|
|
int __fastcall GetMaxWidth(int &n, LPCSTR p);
|
|||
|
|
void __fastcall DrawTextVert(TCanvas *tp, int xc, int y, int fh, LPCSTR p);
|
|||
|
|
void __fastcall DrawTextHoriANSI(TCanvas *tp, int xc, int y, LPCSTR p);
|
|||
|
|
void __fastcall DrawText(TCanvas *cp, int x, int y, LPCSTR p, int zc);
|
|||
|
|
protected:
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawText();
|
|||
|
|
__fastcall ~CDrawText();
|
|||
|
|
|
|||
|
|
// virtual int HitTest(int x, int y){return CDrawBox::HitTest(x, y) ? HT_I : HT_NONE;};
|
|||
|
|
int __fastcall Finish(int X, int Y);
|
|||
|
|
void __fastcall Move(int X, int Y);
|
|||
|
|
void __fastcall Draw(TCanvas *tp);
|
|||
|
|
void __fastcall DrawFast(TCanvas *tp);
|
|||
|
|
int __fastcall Edit(void);
|
|||
|
|
int __fastcall Color(void){return Edit();};
|
|||
|
|
void __fastcall UpdateFont(TFont *pf);
|
|||
|
|
|
|||
|
|
void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
int __fastcall LoadFromStream(TCanvas *tp, TStream *sp);
|
|||
|
|
void __fastcall Copy(CDraw *dp);
|
|||
|
|
void __fastcall Copy(CDraw *dp, int sw);
|
|||
|
|
void __fastcall UpdateText(void);
|
|||
|
|
void __fastcall UpdateTimeText(void);
|
|||
|
|
int __fastcall IsTimeMacro(void);
|
|||
|
|
void __fastcall ReleaseResource(void);
|
|||
|
|
LPCSTR __fastcall GetText(void){return m_Text.c_str();};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CPolygon
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int XW;
|
|||
|
|
int YW;
|
|||
|
|
int Max; // <20>ő<EFBFBD><C591>_<EFBFBD><5F>
|
|||
|
|
int Cnt; // <20><><EFBFBD>݂̓o<CC93>^<5E>_<EFBFBD><5F>
|
|||
|
|
POINT *pBase; // <20>|<7C>C<EFBFBD><43><EFBFBD>g<EFBFBD>̔z<CC94><7A><EFBFBD>̃|<7C>C<EFBFBD><43><EFBFBD>^
|
|||
|
|
public:
|
|||
|
|
__fastcall CPolygon(){
|
|||
|
|
Max = Cnt = 0;
|
|||
|
|
pBase = NULL;
|
|||
|
|
XW = 320;
|
|||
|
|
YW = 256;
|
|||
|
|
};
|
|||
|
|
__fastcall ~CPolygon(){
|
|||
|
|
Free();
|
|||
|
|
};
|
|||
|
|
void __fastcall Free(void);
|
|||
|
|
void __fastcall AddPoint(int X, int Y);
|
|||
|
|
void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
int __fastcall LoadFromStream(TStream *sp);
|
|||
|
|
void __fastcall Draw(TCanvas *tp, int loop);
|
|||
|
|
void __fastcall DrawOffset(TCanvas *tp, int x, int y);
|
|||
|
|
void __fastcall DrawOffsetSiege(TCanvas *tp, int x, int y, TColor SCol, int e);
|
|||
|
|
void __fastcall GetCenter(int &xc, int &yc);
|
|||
|
|
void __fastcall Copy(CPolygon *p);
|
|||
|
|
void __fastcall Stretch(int xw, int yw, int oxw, int oyw);
|
|||
|
|
void __fastcall Stretch(CPolygon &pol);
|
|||
|
|
void __fastcall Clear(void){
|
|||
|
|
Cnt = 0;
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawPic : public CDrawBox
|
|||
|
|
{
|
|||
|
|
private:
|
|||
|
|
public:
|
|||
|
|
int m_Type;
|
|||
|
|
int m_Shape;
|
|||
|
|
int m_Adjust;
|
|||
|
|
int m_TransPoint;
|
|||
|
|
CPolygon m_Polygon;
|
|||
|
|
CPolygon m_DrawPolygon;
|
|||
|
|
Graphics::TBitmap *pBitmap;
|
|||
|
|
Graphics::TBitmap *pLoadBitmap;
|
|||
|
|
private:
|
|||
|
|
void __fastcall CreateBitmap(void);
|
|||
|
|
void __fastcall AdjustSize(void);
|
|||
|
|
void __fastcall UpdateHistPic(Graphics::TBitmap *pBmp);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
void __fastcall DrawCursor(void);
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawPic();
|
|||
|
|
__fastcall ~CDrawPic();
|
|||
|
|
|
|||
|
|
int __fastcall Finish(int X, int Y);
|
|||
|
|
int __fastcall FinishR(int X, int Y);
|
|||
|
|
int __fastcall Color(void){return Edit();};
|
|||
|
|
void __fastcall Move(int X, int Y);
|
|||
|
|
void __fastcall Draw(TCanvas *tp);
|
|||
|
|
void __fastcall FillPic(TCanvas *tp, TColor col, int sw, double sx, double sy, int off);
|
|||
|
|
void __fastcall SetLoadBitmap(Graphics::TBitmap *pBmp);
|
|||
|
|
|
|||
|
|
void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
int __fastcall LoadFromStream(TCanvas *tp, TStream *sp);
|
|||
|
|
void __fastcall Copy(CDraw *dp);
|
|||
|
|
|
|||
|
|
int __fastcall Edit(void);
|
|||
|
|
int __fastcall IsOrgSize(void);
|
|||
|
|
void __fastcall SetOrgSize(void);
|
|||
|
|
void __fastcall KeepAspect(void);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawOle : public CDrawBox
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Trans;
|
|||
|
|
int m_Stretch;
|
|||
|
|
TOleContainer *pContainer;
|
|||
|
|
int m_OrgXW;
|
|||
|
|
int m_OrgYW;
|
|||
|
|
private:
|
|||
|
|
void __fastcall GetOrgSize(void);
|
|||
|
|
void __fastcall SetInitSize(void);
|
|||
|
|
void __fastcall MakeItem(void);
|
|||
|
|
void __fastcall MakeError(void);
|
|||
|
|
void __fastcall SyncVerb(void);
|
|||
|
|
void __fastcall ViewVerb(int sw);
|
|||
|
|
TForm *pOleView;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawOle();
|
|||
|
|
__fastcall ~CDrawOle();
|
|||
|
|
|
|||
|
|
int __fastcall Finish(int X, int Y);
|
|||
|
|
int __fastcall Color(void){return Edit();};
|
|||
|
|
Graphics::TBitmap* __fastcall MakeBitmap(void);
|
|||
|
|
void __fastcall Draw(TCanvas *tp);
|
|||
|
|
void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
int __fastcall LoadFromStream(TCanvas *tp, TStream *sp);
|
|||
|
|
void __fastcall Copy(CDraw *dp);
|
|||
|
|
int __fastcall Edit(void);
|
|||
|
|
int __fastcall LoadFromFile(int x, int y, LPCSTR pName);
|
|||
|
|
void __fastcall LoadFromBitmap(int x, int y, Graphics::TBitmap *pBmp);
|
|||
|
|
int __fastcall Paste(void);
|
|||
|
|
void __fastcall DoPrimary(void);
|
|||
|
|
int __fastcall ObjectProperties(void);
|
|||
|
|
int __fastcall IsOrgSize(void);
|
|||
|
|
void __fastcall SetOrgSize(void);
|
|||
|
|
void __fastcall KeepAspect(void);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#define DISFONTSMOOTHING 0x00000001
|
|||
|
|
typedef void (__cdecl *mcmFunc)(DWORD func, FARPROC pFunc);
|
|||
|
|
typedef void (__cdecl *mcmLanguage)(DWORD lang);
|
|||
|
|
typedef void (__cdecl *mcmAboutDialog)(HWND hWnd);
|
|||
|
|
typedef HANDLE (__cdecl *mcmCreateObject)(const BYTE *pStorage, DWORD Size);
|
|||
|
|
typedef const BYTE* (__cdecl *mcmCreateStorage)(HANDLE hObj, LPDWORD pSize);
|
|||
|
|
typedef void (__cdecl *mcmDeleteStorage)(HANDLE hObj, const BYTE *pStorage);
|
|||
|
|
typedef void (__cdecl *mcmDeleteObject)(HANDLE hObj);
|
|||
|
|
typedef DWORD (__cdecl *mcmGetItemType)(HANDLE hObj);
|
|||
|
|
typedef DWORD (__cdecl *mcmEdit)(HANDLE hObj, HWND hWnd);
|
|||
|
|
typedef ULONG (__cdecl *mcmGetOrgSize)(HANDLE hObj);
|
|||
|
|
typedef void (__cdecl *mcmPos)(HANDLE hObj, DWORD pos, DWORD size, DWORD tsize);
|
|||
|
|
typedef LPCSTR (__cdecl *mcmGetUserText)(HANDLE hObj);
|
|||
|
|
typedef HBITMAP (__cdecl *mcmUpdateText)(HANDLE hObj, HBITMAP hDest, LPCSTR pText);
|
|||
|
|
typedef HBITMAP (__cdecl *mcmUpdateImage)(HANDLE hObj, HBITMAP hDest, HBITMAP hSrc);
|
|||
|
|
typedef void (__cdecl *mcmSetDraft)(HANDLE hObj, DWORD sw);
|
|||
|
|
typedef void (__cdecl *mcmSetEx)(HANDLE hObj, DWORD ex);
|
|||
|
|
typedef void (__cdecl *mcmGetFont)(HANDLE hObj, LOGFONT *pLogfont);
|
|||
|
|
typedef void (__cdecl *mcmSetFont)(HANDLE hObj, LOGFONT *pLogfont);
|
|||
|
|
class CDrawLib : public CDrawBox
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Type; // 0:Static, 1-Text, 2-Image
|
|||
|
|
AnsiString m_Name; // Name of custom item
|
|||
|
|
HINSTANCE hLib; //ja7ude 0521
|
|||
|
|
HANDLE hObj;
|
|||
|
|
Graphics::TBitmap *pBitmap;
|
|||
|
|
int m_OrgXW;
|
|||
|
|
int m_OrgYW;
|
|||
|
|
private:
|
|||
|
|
mcmFunc fFunc;
|
|||
|
|
mcmLanguage fLanguage;
|
|||
|
|
mcmAboutDialog fAboutDialog;
|
|||
|
|
mcmGetItemType fGetItemType;
|
|||
|
|
mcmCreateObject fCreateObject;
|
|||
|
|
mcmCreateStorage fCreateStorage;
|
|||
|
|
mcmDeleteStorage fDeleteStorage;
|
|||
|
|
mcmDeleteObject fDeleteObject;
|
|||
|
|
mcmEdit fEdit;
|
|||
|
|
mcmEdit fFont;
|
|||
|
|
mcmGetOrgSize fGetOrgSize;
|
|||
|
|
mcmPos fPos;
|
|||
|
|
mcmGetUserText fGetUserText;
|
|||
|
|
mcmUpdateText fUpdateText;
|
|||
|
|
mcmUpdateImage fUpdateImage;
|
|||
|
|
mcmSetDraft fSetDraft;
|
|||
|
|
mcmSetEx fSetEx;
|
|||
|
|
mcmGetFont fGetFont;
|
|||
|
|
mcmSetFont fSetFont;
|
|||
|
|
AnsiString m_Text;
|
|||
|
|
|
|||
|
|
FARPROC __fastcall GetProc(LPCSTR pName);
|
|||
|
|
void __fastcall Delete(void);
|
|||
|
|
void __fastcall LoadLib(int emsg);
|
|||
|
|
void __fastcall SetBitmapSize(void);
|
|||
|
|
void __fastcall UpdateText(int f);
|
|||
|
|
void __fastcall SwapHandle(HBITMAP hb);
|
|||
|
|
void __fastcall Pos(void);
|
|||
|
|
void __fastcall Update(void);
|
|||
|
|
int __fastcall Edit(int sw);
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawLib();
|
|||
|
|
__fastcall ~CDrawLib();
|
|||
|
|
|
|||
|
|
int __fastcall MakeR(LPCSTR pName);
|
|||
|
|
int __fastcall Finish(int X, int Y);
|
|||
|
|
int __fastcall Color(void){return Edit();};
|
|||
|
|
void __fastcall Move(int X, int Y);
|
|||
|
|
void __fastcall Draw(TCanvas *tp);
|
|||
|
|
void __fastcall DrawFast(TCanvas *tp);
|
|||
|
|
void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
int __fastcall LoadFromStream(TCanvas *tp, TStream *sp);
|
|||
|
|
void __fastcall Copy(CDraw *dp);
|
|||
|
|
int __fastcall Edit(void);
|
|||
|
|
int __fastcall Font(void);
|
|||
|
|
void __fastcall ObjectProperties(void);
|
|||
|
|
void __fastcall UpdatePic(Graphics::TBitmap *pBmp);
|
|||
|
|
void __fastcall UpdateText(void);
|
|||
|
|
void __fastcall UpdateTimeText(void);
|
|||
|
|
int __fastcall IsOrgSize(void);
|
|||
|
|
void __fastcall SetOrgSize(void);
|
|||
|
|
void __fastcall KeepAspect(void);
|
|||
|
|
LPCSTR __fastcall GetItemText(void){
|
|||
|
|
if( !hLib || !hObj || !fGetUserText ) return "???";
|
|||
|
|
return fGetUserText(hObj);
|
|||
|
|
};
|
|||
|
|
int __fastcall IsTimeMacro(void);
|
|||
|
|
LPCSTR __fastcall GetText(void){return m_Text.c_str();};
|
|||
|
|
|
|||
|
|
int __fastcall GetFont(LOGFONT *pLogfont);
|
|||
|
|
int __fastcall SetFont(LOGFONT *pLogfont);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDrawGroup : public CDrawBox
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
int m_Max;
|
|||
|
|
int m_Cnt;
|
|||
|
|
int m_TransX, m_TransY;
|
|||
|
|
int m_SX, m_SY;
|
|||
|
|
TColor m_TransCol;
|
|||
|
|
CDraw **pBase;
|
|||
|
|
CDraw *pSel;
|
|||
|
|
public:
|
|||
|
|
int m_Hit;
|
|||
|
|
protected:
|
|||
|
|
public:
|
|||
|
|
__fastcall CDrawGroup();
|
|||
|
|
__fastcall ~CDrawGroup();
|
|||
|
|
void __fastcall Free(void);
|
|||
|
|
void __fastcall FreeItem(void);
|
|||
|
|
void __fastcall AddItem(CDraw *dp);
|
|||
|
|
void __fastcall DeleteItem(CDraw *dp);
|
|||
|
|
void __fastcall ReleaseItem(CDraw *dp);
|
|||
|
|
void __fastcall UpdatePic(Graphics::TBitmap *pBmp);
|
|||
|
|
void __fastcall FillPic(TCanvas *tp, TColor col, int sw, double sx, double sy, int off);
|
|||
|
|
void __fastcall Draw(TCanvas *tp);
|
|||
|
|
void __fastcall DrawFast(TCanvas *tp);
|
|||
|
|
void __fastcall DrawNotSel(TCanvas *tp);
|
|||
|
|
CDraw* __fastcall SelectItem(int X, int Y);
|
|||
|
|
int __fastcall HitTest(int x, int y){return CDrawBox::HitTest(x, y) ? HT_I : HT_NONE;};
|
|||
|
|
|
|||
|
|
CDraw * __fastcall MakeItem(int cmd);
|
|||
|
|
CDraw * __fastcall AddItemCopy(CDraw *dp);
|
|||
|
|
virtual void __fastcall SaveToStream(TStream *sp);
|
|||
|
|
virtual int __fastcall LoadFromStream(TCanvas *tp, TStream *sp);
|
|||
|
|
|
|||
|
|
virtual void __fastcall Copy(CDraw *dp);
|
|||
|
|
void __fastcall UpdateText(void);
|
|||
|
|
void __fastcall UpdateTimeText(void);
|
|||
|
|
int __fastcall IsTimeMacro(void);
|
|||
|
|
|
|||
|
|
void __fastcall BackItem(CDraw *pItem);
|
|||
|
|
void __fastcall FrontItem(CDraw *pItem);
|
|||
|
|
int __fastcall UpItem(int n);
|
|||
|
|
int __fastcall DownItem(int n);
|
|||
|
|
void __fastcall DrawTrans(TCanvas *tp);
|
|||
|
|
|
|||
|
|
int __fastcall IsMacro(LPCSTR pKey);
|
|||
|
|
void __fastcall AdjustTransPoint(void);
|
|||
|
|
void __fastcall AdjustTransColor(Graphics::TBitmap *pBmp);
|
|||
|
|
void __fastcall ReleaseResource(void);
|
|||
|
|
void __fastcall GetColorBarPos(int &Y1, int &Y2);
|
|||
|
|
CDraw * __fastcall GetLastItem(void);
|
|||
|
|
|
|||
|
|
int __fastcall IsConvBitmap(CDraw *pItem);
|
|||
|
|
void __fastcall ConvBitmap(CDraw *pItem);
|
|||
|
|
CDrawPic* __fastcall MakePic(int x, int y, Graphics::TBitmap *pBitmap, int ov);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
#if 0
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
class CGrid {
|
|||
|
|
public:
|
|||
|
|
int m_Flag;
|
|||
|
|
int m_Intval;
|
|||
|
|
public:
|
|||
|
|
__fastcall CGrid();
|
|||
|
|
void __fastcall Draw(TCanvas *tp, int xw, int yw);
|
|||
|
|
void __fastcall Align(int &x1, int &y1, int &x2, int &y2);
|
|||
|
|
void __fastcall Align(CDraw *pItem);
|
|||
|
|
};
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
int __fastcall LoadTemplate(CDrawGroup *pItem, LPCSTR pName, TCanvas *tp);
|
|||
|
|
int __fastcall SaveTemplate(CDrawGroup *pItem, LPCSTR pName);
|
|||
|
|
|
|||
|
|
void __fastcall SetDrawSize(int x, int y);
|
|||
|
|
TColor __fastcall GetCol(TColor c1, TColor c2, int x, int xw);
|
|||
|
|
|
|||
|
|
extern CDrawGroup DrawPara;
|
|||
|
|
#endif
|
|||
|
|
|