первый
This commit is contained in:
232
lib/wxTools.h
Normal file
232
lib/wxTools.h
Normal file
@ -0,0 +1,232 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef wxToolsH
|
||||
#define wxToolsH
|
||||
//---------------------------------------------------------------------------
|
||||
#include <wx/string.h>
|
||||
#include <wx/stream.h>
|
||||
#include <wx/ffile.h>
|
||||
#include <wx/html/htmlwin.h>
|
||||
#include <wx/mstream.h>
|
||||
|
||||
#include <wx/msw/msvcrt.h>
|
||||
|
||||
#include "structs.h"
|
||||
//---------------------------------------------------------------------------
|
||||
typedef unsigned int uint4;
|
||||
typedef unsigned char uint1;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#if defined( _WX )
|
||||
//wxString getExecutablePath();
|
||||
|
||||
wxString getStringOnUrl(const wxString path); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getFileOnWebServer(const wxString url,const wxString path); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char* getDataFromURL(const wxString url,unsigned int* size); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>!=NULL <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint4 <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD>)
|
||||
|
||||
wxString getBeforeFirst(wxString str,wxString separator);
|
||||
wxString getBeforeLast(wxString str,wxChar separator);
|
||||
wxString getAfterFirst(wxString str,wxString separator);
|
||||
wxString getAfterLast(wxString str,wxChar separator);
|
||||
wxString getSubString(wxString str, wxString bracket1,wxString bracket2);
|
||||
wxString replaceStrings(wxString sors,wxString find,wxString repl); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> find <20> sors <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> repl
|
||||
|
||||
void replaseChars(wxString& str,wxChar oldCh,wxChar newCh); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
wxString cutFirstSubStr(wxString &string,wxChar separator); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
wxString cutFirstSubStr(wxString &string,char ch); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
wxString getFloatString(wxString str); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
wxString IntToStr(unsigned long i);
|
||||
wxString FloatToStr(float f, int numdigits = -1);
|
||||
wxString DoubleToStr(double d, int numdigits = -1);
|
||||
int StrToInt(wxString str);
|
||||
int StrFullToInt(wxString str); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int StrFullToUInt(wxString str); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double StrToDouble(wxString str);
|
||||
wxString md5String(wxString val);
|
||||
|
||||
|
||||
wxString loadUTF8String(wxInputStream *is);
|
||||
wxString loadUTF8String(wxFFile *is);
|
||||
void saveUTF8String(wxOutputStream *os, wxString str);
|
||||
void saveUTF8String(wxFFile *os, wxString str);
|
||||
void saveUTF8String2(wxOutputStream *os, wxString str); //2 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#endif
|
||||
//------------------------------------------------------------------------------
|
||||
class MyHtmlWindow : public wxHtmlWindow
|
||||
{
|
||||
public:
|
||||
MyHtmlWindow(wxWindow *parent) : wxHtmlWindow( parent, -1, wxPoint(10,10), wxSize(200,200) ) { }
|
||||
virtual wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType WXUNUSED(type),
|
||||
const wxString& WXUNUSED(url),
|
||||
wxString *WXUNUSED(redirect)) const;
|
||||
virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
|
||||
private:
|
||||
DECLARE_NO_COPY_CLASS(MyHtmlWindow)
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
typedef float (*MyFuncPtrType)(unsigned int, unsigned char*, void*);
|
||||
struct RClientData //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
wxString url; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int clientInt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
wxString clientStr; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void* clientData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyFuncPtrType clientFun; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
//<2F> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int size; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char* data; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class TTask: public wxThread
|
||||
{
|
||||
protected:
|
||||
wxCriticalSection* critsectA; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
wxCriticalSection* critsectR; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TSimpleList<RClientData*>* listAnswer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TSimpleList<RClientData*>* listRequest; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool m_Cancel;
|
||||
int m_delay; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
TTask(int delay);
|
||||
~TTask()
|
||||
{
|
||||
delete critsectA;
|
||||
delete critsectR;
|
||||
delete listAnswer;
|
||||
delete listRequest;
|
||||
};
|
||||
void addTask(RClientData* task) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
critsectR->Enter();
|
||||
listRequest->add(task);
|
||||
critsectR->Leave();
|
||||
};
|
||||
RClientData* getTask() //<2F><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ RClientData* result=NULL;
|
||||
critsectR->Enter();
|
||||
if(listRequest->count()>0)
|
||||
{
|
||||
result=listRequest->get(0);
|
||||
listRequest->del((unsigned int)0);
|
||||
}
|
||||
critsectR->Leave();
|
||||
return result;
|
||||
};
|
||||
void addAnswer(RClientData* answer)
|
||||
{
|
||||
critsectA->Enter();
|
||||
listAnswer->add(answer);
|
||||
critsectA->Leave();
|
||||
};
|
||||
RClientData* getAnswer() //<2F><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ RClientData* result=NULL;
|
||||
critsectA->Enter();
|
||||
if(listAnswer->count()>0)
|
||||
{
|
||||
result=listAnswer->get(0);
|
||||
listAnswer->del((unsigned int)0);
|
||||
}
|
||||
critsectA->Leave();
|
||||
return result;
|
||||
};
|
||||
virtual void* Entry(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Cancel(){m_Cancel=true;};
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
struct TAssoStruct
|
||||
{
|
||||
wxString ident;
|
||||
wxString value;
|
||||
};
|
||||
|
||||
class TAMas
|
||||
{
|
||||
public:
|
||||
wxString getAt(wxString id);
|
||||
void setAt(wxString id,wxString val);
|
||||
//void del(wxString id);
|
||||
void Copy(TAMas& res);
|
||||
|
||||
//wxString operator [](int i) { return m_val[i]; };
|
||||
|
||||
private:
|
||||
wxString str;
|
||||
wxArrayString m_id,m_val;
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
struct TIniStruct
|
||||
{
|
||||
TIniStruct *next; //<2F><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
wxString section; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
wxString ident; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
wxString value; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
class TIniFile
|
||||
{
|
||||
private:
|
||||
wxString path;
|
||||
TIniStruct *first; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TIniStruct *last;
|
||||
public:
|
||||
TIniFile(wxString path);
|
||||
virtual ~TIniFile();
|
||||
wxString ReadString(wxString Section,wxString Ident,wxString Default);
|
||||
float ReadFloat(wxString Section,wxString Ident,float Default);
|
||||
long ReadLong(wxString Section,wxString Ident,long Default);
|
||||
unsigned long ReadULong(wxString Section,wxString Ident,unsigned long Default);
|
||||
bool ReadBool(wxString Section,wxString Ident,bool Default);
|
||||
void WriteString(wxString Section,wxString Ident,wxString Value);
|
||||
void WriteFloat(wxString Section,wxString Ident,float Value);
|
||||
void WriteLong(wxString Section,wxString Ident,long Value);
|
||||
void WriteULong(wxString Section,wxString Ident,unsigned long Value);
|
||||
void WriteBool(wxString Section,wxString Ident,bool Value);
|
||||
void Save(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
struct LStream
|
||||
{
|
||||
wxMemoryInputStream *is;
|
||||
wxString name; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
char *data; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> wxMemoryInputStream <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int size; //<2F><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class TFileList
|
||||
{
|
||||
private:
|
||||
LStream **List; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int size; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> List
|
||||
public:
|
||||
TFileList();
|
||||
~TFileList();
|
||||
void add(wxInputStream *is,wxString name);
|
||||
wxInputStream* get(wxString name);
|
||||
unsigned int getCount();
|
||||
LStream* item(unsigned int i);
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
extern const wxEventType wxID_DOWNLOAD_COMPLETE;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> http
|
||||
class THTTPDownload: public wxThread
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
wxEvtHandler *m_Parent; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RClientData* m_CD; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool m_Cancel;
|
||||
public:
|
||||
THTTPDownload(wxEvtHandler *parent,wxString url,int userInt,wxString userStr,void* userData,MyFuncPtrType userFun);
|
||||
~THTTPDownload();
|
||||
virtual void* Entry();
|
||||
//void Cancel();
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
#endif
|
||||
Reference in New Issue
Block a user