Add Windows specific code

This commit is contained in:
Grégory Soutadé
2011-02-05 21:02:03 +01:00
parent bd4809042b
commit 0c344a0273
13 changed files with 185 additions and 143 deletions
+27 -1
View File
@@ -28,9 +28,35 @@
/* this is only to get definitions for memcpy(), ntohl() and htonl() */
//#include "../git-compat-util.h"
#include <string.h>
#include <arpa/inet.h>
#include "sha1.h"
#ifndef WIN32
#include <arpa/inet.h>
#else
#if BYTE_ORDER == BIG_ENDIAN
#define htons(n) (n)
#define ntohs(n) (n)
#define htonl(n) (n)
#define ntohl(n) (n)
#else
#define htons(n) (((((unsigned short)(n) & 0xFF)) << 8) | (((unsigned short)(n) & 0xFF00) >> 8))
#define ntohs(n) (((((unsigned short)(n) & 0xFF)) << 8) | (((unsigned short)(n) & 0xFF00) >> 8))
#define htonl(n) (((((unsigned long)(n) & 0xFF)) << 24) | \
((((unsigned long)(n) & 0xFF00)) << 8) | \
((((unsigned long)(n) & 0xFF0000)) >> 8) | \
((((unsigned long)(n) & 0xFF000000)) >> 24))
#define ntohl(n) (((((unsigned long)(n) & 0xFF)) << 24) | \
((((unsigned long)(n) & 0xFF00)) << 8) | \
((((unsigned long)(n) & 0xFF0000)) >> 8) | \
((((unsigned long)(n) & 0xFF000000)) >> 24))
#endif
#endif
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
/*
+1 -1
View File
@@ -165,7 +165,7 @@ KissPanel* AccountPanel::CreatePanel()
wxBitmapButton* AccountPanel::GetButton(int id)
{
if (!_KissButton)
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(ACCOUNT_ICON)), wxDefaultPosition, wxSize(128, 128));
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(ACCOUNT_ICON), wxBITMAP_TYPE_PNG), wxDefaultPosition, wxSize(128, 128));
return _KissButton;
}
+2 -2
View File
@@ -174,7 +174,7 @@ KissPanel* PreferencesPanel::CreatePanel()
wxBitmapButton* PreferencesPanel::GetButton(int id)
{
if (!_KissButton)
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(PREFS_ICON)), wxDefaultPosition, wxSize(128, 128));
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(PREFS_ICON), wxBITMAP_TYPE_PNG), wxDefaultPosition, wxSize(128, 128));
return _KissButton;
}
@@ -348,7 +348,7 @@ void PreferencesPanel::InitLanguage(User* user)
for (i=0; i<NB_SUPPORTED_LANGUAGES; i++)
{
_language->Append(languages[i].name, wxBitmap(languages[i].icon));
_language->Append(languages[i].name, wxBitmap(languages[i].icon, wxBITMAP_TYPE_PNG));
if (languages[i].language == _wxUI->_language)
select = i;
}
+1 -1
View File
@@ -133,7 +133,7 @@ KissPanel* SearchPanel::CreatePanel()
wxBitmapButton* SearchPanel::GetButton(int id)
{
if (!_KissButton)
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(SEARCH_ICON)), wxDefaultPosition, wxSize(128, 128));
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(SEARCH_ICON), wxBITMAP_TYPE_PNG), wxDefaultPosition, wxSize(128, 128));
return _KissButton;
}
+1 -1
View File
@@ -150,7 +150,7 @@ KissPanel* StatsPanel::CreatePanel()
wxBitmapButton* StatsPanel::GetButton(int id)
{
if (!_KissButton)
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(STATS_ICON)), wxDefaultPosition, wxSize(128, 128));
_KissButton = new wxBitmapButton(_wxUI, id, wxBitmap(wxT(STATS_ICON), wxBITMAP_TYPE_PNG), wxDefaultPosition, wxSize(128, 128));
return _KissButton;
}
+28 -25
View File
@@ -39,14 +39,17 @@ BEGIN_EVENT_TABLE(GridAccount, wxGrid)
EVT_GRID_CELL_LEFT_CLICK(GridAccount::OnCellLeftClick )
END_EVENT_TABLE()
enum {TREE, DESCRIPTION, OP_DATE, DEBIT, CREDIT, CATEGORY, ACCOUNT, OP_DELETE, CHECKED, NUMBER_COLS_OPS};
enum {GRID_ID};
GridAccount::GridAccount(KissCount* kiss, wxWindow *parent, wxWindowID id) : wxGrid(parent, id), _fixCosts(0), _week1(0),
_week2(0), _week3(0), _week4(0), _parent(parent), _kiss(kiss),
_loadOperations(false),
_curMonth(0), _curYear(0)
{
wxBitmap deleteBitmap(wxT(DELETE_ICON));
wxBitmap checkedBitmap(wxT(CHECKED_ICON));
wxBitmap deleteBitmap(wxT(DELETE_ICON), wxBITMAP_TYPE_PNG);
wxBitmap checkedBitmap(wxT(CHECKED_ICON), wxBITMAP_TYPE_PNG);
DEFAULT_FONT(font);
int i;
User* user = _kiss->GetUser();
@@ -70,7 +73,7 @@ GridAccount::GridAccount(KissCount* kiss, wxWindow *parent, wxWindowID id) : wxG
SetReadOnly(0, i, true);
SetCellAlignment(0, i, wxALIGN_CENTRE, wxALIGN_CENTRE);
}
SetCellRenderer(0, DELETE, new wxGridCellBitmapRenderer(deleteBitmap));
SetCellRenderer(0, OP_DELETE, new wxGridCellBitmapRenderer(deleteBitmap));
SetCellRenderer(0, CHECKED, new wxGridCellBitmapRenderer(checkedBitmap));
_accounts = new wxString[user->GetAccountsNumber()];
@@ -92,9 +95,9 @@ GridAccount::GridAccount(KissCount* kiss, wxWindow *parent, wxWindowID id) : wxG
AutoSizeColumn(TREE, false);
AutoSizeColumn(CATEGORY, false);
AutoSizeColumn(DATE, false);
AutoSizeColumn(OP_DATE, false);
AutoSizeColumn(ACCOUNT, false);
AutoSizeColumn(DELETE, false);
AutoSizeColumn(OP_DELETE, false);
AutoSizeColumn(CHECKED, false);
}
@@ -226,9 +229,9 @@ void GridAccount::LoadOperations(std::vector<Operation>* operations, bool canAdd
AutoSizeColumn(TREE, false);
AutoSizeColumn(CATEGORY, false);
AutoSizeColumn(DATE, false);
AutoSizeColumn(OP_DATE, false);
AutoSizeColumn(ACCOUNT, false);
AutoSizeColumn(DELETE, false);
AutoSizeColumn(OP_DELETE, false);
AutoSizeColumn(CHECKED, false);
_loadOperations = false;
@@ -302,7 +305,7 @@ void GridAccount::InsertOperation(User* user, Operation& op, int line, bool fix,
SetCellRenderer(line, TREE, new wxGridCellTreeButtonRenderer());
SetCellEditor(line, TREE, new wxGridCellTreeButtonEditor());
SetReadOnly(line, DATE, true);
SetReadOnly(line, OP_DATE, true);
SetReadOnly(line, CREDIT, true);
SetReadOnly(line, DEBIT, true);
SetReadOnly(line, CATEGORY, true);
@@ -332,12 +335,12 @@ void GridAccount::InsertOperation(User* user, Operation& op, int line, bool fix,
{
cat = user->GetCategory(op.category);
SetCellEditor(line, DATE, new CalendarEditor(op.day, month, year));
SetCellEditor(line, OP_DATE, new CalendarEditor(op.day, month, year));
description = op.description;
UNESCAPE_CHARS(description);
SetCellValue(line, DESCRIPTION, description);
SetCellRenderer(line, DESCRIPTION, new wxGridCellTabStringRenderer ());
SetCellValue(line, DATE, wxString::Format(wxT("%02d/%02d/%d"), op.day+1, month+1, year));
SetCellValue(line, OP_DATE, wxString::Format(wxT("%02d/%02d/%d"), op.day+1, month+1, year));
if (op.amount < 0)
SetCellValue(line, DEBIT, wxString::Format(wxT("%.2lf"), -op.amount));
else
@@ -347,8 +350,8 @@ void GridAccount::InsertOperation(User* user, Operation& op, int line, bool fix,
SetCellValue(line, ACCOUNT, user->GetAccountName(op.account));
if (!fix && !op.meta)
SetCellValue(line, CATEGORY, cat.name);
SetCellRenderer(line, DELETE, new wxGridCellBoolRenderer ());
SetCellEditor(line, DELETE, new wxGridCellBoolEditor ());
SetCellRenderer(line, OP_DELETE, new wxGridCellBoolRenderer ());
SetCellEditor(line, OP_DELETE, new wxGridCellBoolEditor ());
SetCellRenderer(line, CHECKED, new wxGridCellBoolRenderer ());
SetCellEditor(line, CHECKED, new wxGridCellFastBoolEditor ());
@@ -391,16 +394,16 @@ void GridAccount::InsertOperation(User* user, Operation& op, int line, bool fix,
}
else
{
SetCellEditor(line, DATE, new CalendarEditor(0, month, year));
SetCellEditor(line, OP_DATE, new CalendarEditor(0, month, year));
if (curDate.GetMonth() == month &&
curDate.GetYear() == year)
{
if (!fix)
SetCellValue(line, DATE, wxString::Format(wxT("%02d/%02d/%d"), curDate.GetDay(), month+1, year));
SetCellEditor(line, DATE, new CalendarEditor(curDate.GetDay()-1, month, year));
SetCellValue(line, OP_DATE, wxString::Format(wxT("%02d/%02d/%d"), curDate.GetDay(), month+1, year));
SetCellEditor(line, OP_DATE, new CalendarEditor(curDate.GetDay()-1, month, year));
}
else
SetCellEditor(line, DATE, new CalendarEditor(0, month, year));
SetCellEditor(line, OP_DATE, new CalendarEditor(0, month, year));
if (fix)
{
@@ -412,13 +415,13 @@ void GridAccount::InsertOperation(User* user, Operation& op, int line, bool fix,
}
SetReadOnly(line, CHECKED, true);
SetReadOnly(line, DELETE, true);
SetReadOnly(line, OP_DELETE, true);
}
SetCellAlignment(line, DATE, wxALIGN_CENTRE, wxALIGN_CENTRE);
SetCellAlignment(line, OP_DATE, wxALIGN_CENTRE, wxALIGN_CENTRE);
SetCellAlignment(line, DEBIT, wxALIGN_RIGHT, wxALIGN_CENTRE);
SetCellAlignment(line, CREDIT, wxALIGN_RIGHT, wxALIGN_CENTRE);
SetCellAlignment(line, DELETE, wxALIGN_CENTRE, wxALIGN_CENTRE);
SetCellAlignment(line, OP_DELETE, wxALIGN_CENTRE, wxALIGN_CENTRE);
SetCellAlignment(line, CHECKED, wxALIGN_CENTRE, wxALIGN_CENTRE);
AutoSizeRow(line);
@@ -430,7 +433,7 @@ void GridAccount::InsertOperation(User* user, Operation& op, int line, bool fix,
// From http://nomadsync.cvs.sourceforge.net/nomadsync/nomadsync/src/
void GridAccount::OnCellLeftClick(wxGridEvent& evt)
{
if (evt.GetCol() != TREE && evt.GetCol() != DELETE && evt.GetCol() != CHECKED) { evt.Skip() ; return;}
if (evt.GetCol() != TREE && evt.GetCol() != OP_DELETE && evt.GetCol() != CHECKED) { evt.Skip() ; return;}
// This forces the cell to go into edit mode directly
//m_waitForSlowClick = TRUE;
@@ -692,7 +695,7 @@ void GridAccount::OnOperationModified(wxGridEvent& event)
op_complete--;
}
value = GetCellValue(row, DATE);
value = GetCellValue(row, OP_DATE);
if (value.Length())
{
date.ParseFormat(value, wxT("%d/%m/%Y"));
@@ -821,7 +824,7 @@ void GridAccount::OnOperationModified(wxGridEvent& event)
}
}
if (col == DELETE)
if (col == OP_DELETE)
{
wxMessageDialog dialog(this, _("Are you sure want to delete : \n")+new_op.description, wxT("KissCount"), wxYES_NO);
if (dialog.ShowModal() == wxID_NO)
@@ -835,7 +838,7 @@ void GridAccount::OnOperationModified(wxGridEvent& event)
// Modify a fix operation
if (row < _fixCosts)
{
if (col == DELETE)
if (col == OP_DELETE)
{
if (cur_op.parent.Length())
user->UnGroup(_displayedOperations[row]);
@@ -943,7 +946,7 @@ void GridAccount::OnOperationModified(wxGridEvent& event)
new_op.parent = cur_op.parent;
new_op.childs = cur_op.childs;
if (col == DELETE)
if (col == OP_DELETE)
{
if (cur_op.parent.Length())
user->UnGroup(_displayedOperations[row]);
@@ -1078,7 +1081,7 @@ void GridAccount::OnOperationModified(wxGridEvent& event)
SET_ROW_FONT(row, font);
}
SetCellValue(row, DATE, wxString::Format(wxT("%02d/%02d/%d"), new_op.day+1, _curMonth+1, _curYear));
SetCellValue(row, OP_DATE, wxString::Format(wxT("%02d/%02d/%d"), new_op.day+1, _curMonth+1, _curYear));
if (!_displayedOperations[row].amount)
{
-2
View File
@@ -35,8 +35,6 @@
class KissCount;
enum {TREE, DESCRIPTION, DATE, DEBIT, CREDIT, CATEGORY, ACCOUNT, DELETE, CHECKED, NUMBER_COLS_OPS};
class GridAccount : public wxGrid
{
public:
+9 -9
View File
@@ -28,15 +28,15 @@
#define DEFAULT_FONT_SIZE 12
#define DEFAULT_FONT(font_name) wxFont font_name(DEFAULT_FONT_SIZE, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, DEFAULT_FONT_NAME);
#define DELETE_ICON "ressources/icons/process-stop.png"
#define CHECKED_ICON "ressources/icons/tick-icon.png"
#define ACCOUNT_ICON "ressources/icons/administrator-icon.png"
#define STATS_ICON "ressources/icons/chart-icon.png"
#define SEARCH_ICON "ressources/icons/Search-icon.png"
#define PREFS_ICON "ressources/icons/options-icon.png"
#define CHANGE_USER_ICON "ressources/icons/Clients-icon.png"
#define ABOUT_ICON "ressources/icons/windows-users-icon.png"
#define QUIT_ICON "ressources/icons/system-log-out.png"
#define DELETE_ICON "./ressources/icons/process-stop.png"
#define CHECKED_ICON "./ressources/icons/tick-icon.png"
#define ACCOUNT_ICON "./ressources/icons/administrator-icon.png"
#define STATS_ICON "./ressources/icons/chart-icon.png"
#define SEARCH_ICON "./ressources/icons/Search-icon.png"
#define PREFS_ICON "./ressources/icons/options-icon.png"
#define CHANGE_USER_ICON "./ressources/icons/Clients-icon.png"
#define ABOUT_ICON "./ressources/icons/windows-users-icon.png"
#define QUIT_ICON "./ressources/icons/system-log-out.png"
#include "KissPanel.h"
+5 -3
View File
@@ -45,6 +45,8 @@ wxUI::wxUI(KissCount* kiss, const wxString& title, const wxPoint& pos, const wxS
: wxFrame(NULL, -1, title, pos, size), _kiss(kiss),
_curPanel(NULL), _locale(NULL), _needReload(false)
{
wxInitAllImageHandlers();
_vbox = new wxBoxSizer(wxVERTICAL);
_buttonsBox = new wxBoxSizer(wxHORIZONTAL);
// ButtonPanel* buttons = new ButtonPanel(_kiss, this);
@@ -61,9 +63,9 @@ wxUI::wxUI(KissCount* kiss, const wxString& title, const wxPoint& pos, const wxS
// CreateStatusBar();
// SetStatusText( wxT("Welcome to wxWidgets!") );
_buttonsBox->Add(new wxBitmapButton(this, BUTTON_CHANGE_USER_ID, wxBitmap(wxT(CHANGE_USER_ICON)), wxDefaultPosition, wxSize(128, 128)));
_buttonsBox->Add(new wxBitmapButton(this, BUTTON_ABOUT_ID, wxBitmap(wxT(ABOUT_ICON)), wxDefaultPosition, wxSize(128, 128)));
_buttonsBox->Add(new wxBitmapButton(this, BUTTON_QUIT_ID, wxBitmap(wxT(QUIT_ICON)), wxDefaultPosition, wxSize(128, 128)));
_buttonsBox->Add(new wxBitmapButton(this, BUTTON_CHANGE_USER_ID, wxBitmap(wxT(CHANGE_USER_ICON), wxBITMAP_TYPE_PNG), wxDefaultPosition, wxSize(128, 128)));
_buttonsBox->Add(new wxBitmapButton(this, BUTTON_ABOUT_ID, wxBitmap(wxT(ABOUT_ICON), wxBITMAP_TYPE_PNG), wxDefaultPosition, wxSize(128, 128)));
_buttonsBox->Add(new wxBitmapButton(this, BUTTON_QUIT_ID, wxBitmap(wxT(QUIT_ICON), wxBITMAP_TYPE_PNG), wxDefaultPosition, wxSize(128, 128)));
SetSizer(_vbox);
+3
View File
@@ -33,6 +33,9 @@
#include "grid/wxGridCellButtonRenderer.h"
#include "grid/wxGridCellButtonEditor.h"
#undef _
#define _(s) wxString(wxGetTranslation(s))
class KissCount;
class AccountPanel;
class PreferencesPanel;