BudgetWindow::BudgetWindow(const BRect &frame) : BWindow(frame,TRANSLATE("Budget"), B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS), fIncomeGrid(13,0), fSpendingGrid(13,0) { fBackView = new BView("background",B_WILL_DRAW); BLayoutBuilder::Group<>(this, B_VERTICAL, 0.0f) .SetInsets(0) .Add(fBackView) .End(); fBackView->SetViewColor(240,240,240); fBar = new BMenuBar("menubar"); fBar->AddItem(new BMenuItem(TRANSLATE("Recalculate All"),new BMessage(M_BUDGET_RECALCULATE))); fBar->AddItem(new BMenuItem(TRANSLATE("Set All to Zero"),new BMessage(M_BUDGET_ZERO))); BuildBudgetSummary(); BuildStatsAndEditor(); BuildCategoryList(); BFont font; BLayoutBuilder::Group<>(fCatBox, B_VERTICAL, 0.0f) .SetInsets(10, font.Size() * 1.3, 10, 10) .Add(fAmountLabel) .Add(fAmountBox) .AddGrid(B_USE_DEFAULT_SPACING, 1.0f) .Add(fMonthly, 0, 0) .Add(fWeekly, 1, 0) .Add(fQuarterly, 0, 1) .Add(fAnnually, 1, 1) .End() .End(); fAmountBox->SetText(""); fAmountBox->GetFilter()->SetMessenger(new BMessenger(this)); if(gDatabase.CountBudgetEntries()==0) GenerateBudget(false); RefreshBudgetGrid(); RefreshCategories(); RefreshBudgetSummary(); fCategoryList->MakeFocus(true); BLayoutBuilder::Group<>(fBackView, B_VERTICAL, 0.0f) .SetInsets(0) .Add(fBar) .AddGroup(B_VERTICAL) .SetInsets(10, 10, 10, 10) .AddGroup(B_HORIZONTAL) .Add(fCategoryList) .AddGroup(B_VERTICAL) .Add(fCatBox) .Add(fCatStat) .End() .End() .Add(fBudgetSummary) .End() .End(); }
udfDancersTeamMngr::udfDancersTeamMngr( wxWindow* parent, unsigned int nId ) : DancersTeamMngr( parent ) , m_pCon(NULL) , m_nCSId(nId) { m_pCon = CDbManager::Instance()->GetConnection(); RefreshList(); RefreshClubs(); RefreshCategories(); }
void BudgetWindow::MessageReceived(BMessage *msg) { switch(msg->what) { case M_SELECT_CATEGORY: { HandleCategorySelection(); fAmountBox->MakeFocus(true); break; } case M_AMOUNT_CHANGED: { BString str(fAmountBox->Text()); if(str.CountChars()<1) str = "0"; Fixed f; if(gDefaultLocale.StringToCurrency(str.String(),f)!=B_OK) break; f.Round(); gDefaultLocale.CurrencyToString(f,str); str.Truncate(str.FindFirst(gDefaultLocale.CurrencyDecimal())); str.RemoveFirst(gDefaultLocale.CurrencySymbol()); BRow *row = fCategoryList->CurrentSelection(); if(!row) break; row->SetField(new BStringField(str.String()),1); fCategoryList->UpdateRow(row); BudgetEntry entry; gDatabase.GetBudgetEntry( ((BStringField*)row->GetField(0))->String(),entry ); entry.amount = f; if(entry.isexpense) entry.amount.Invert(); gDatabase.AddBudgetEntry(entry); RefreshBudgetGrid(); RefreshBudgetSummary(); fBudgetSummary->SetFocusRow( entry.isexpense ? 1 : 0); fBudgetSummary->SetFocusRow(2); break; } case M_BUDGET_RECALCULATE: { GenerateBudget(false); RefreshBudgetGrid(); RefreshBudgetSummary(); RefreshCategories(); break; } case M_BUDGET_ZERO: { GenerateBudget(true); RefreshBudgetGrid(); RefreshBudgetSummary(); RefreshCategories(); break; } case M_SET_PERIOD_MONTH: { SetPeriod(BUDGET_MONTHLY); break; } case M_SET_PERIOD_WEEK: { SetPeriod(BUDGET_WEEKLY); break; } case M_SET_PERIOD_QUARTER: { SetPeriod(BUDGET_QUARTERLY); break; } case M_SET_PERIOD_YEAR: { SetPeriod(BUDGET_ANNUALLY); break; } case M_NEXT_FIELD: { if(fAmountBox->ChildAt(0)->IsFocus()) fMonthly->MakeFocus(true); break; } case M_PREVIOUS_FIELD: { if(fAmountBox->ChildAt(0)->IsFocus()) fCategoryList->MakeFocus(true); break; } default: BWindow::MessageReceived(msg); } }