本文整理汇总了C++中WDate::month方法的典型用法代码示例。如果您正苦于以下问题:C++ WDate::month方法的具体用法?C++ WDate::month怎么用?C++ WDate::month使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WDate
的用法示例。
在下文中一共展示了WDate::month方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: browseTo
void WCalendar::browseTo(const WDate& date)
{
bool rerender = false;
if (currentYear_ != date.year()) {
currentYear_ = date.year();
rerender = true;
}
if (currentMonth_ != date.month()) {
currentMonth_ = date.month();
rerender = true;
}
if (rerender) {
emitCurrentPageChanged();
renderMonth();
}
}
示例2: update
void CalendarCell::update(const dbo::ptr<UserAccount>& user, const WDate& date)
{
date_ = date;
user_ = user;
clear();
dbo::Session& session = PlannerApplication::plannerApplication()->session;
dbo::Transaction transaction(session);
WString day;
day += boost::lexical_cast<std::string>(date.day());
if (date.day() == 1)
day += " " + WDate::longMonthName(date.month());
WText* header = new WText(day);
header->setStyleClass("cell-header");
addWidget(header);
typedef dbo::collection< dbo::ptr<Entry> > Entries;
Entries entries = user->entriesInRange(date, date.addDays(1));
const unsigned maxEntries = 4;
unsigned counter = 0;
for (Entries::const_iterator i = entries.begin();
i != entries.end(); ++i, ++counter) {
if (counter == maxEntries) {
WText* extra =
new WText(tr("calendar.cell.extra")
.arg((int)(entries.size() - maxEntries)));
extra->setStyleClass("cell-extra");
addWidget(extra);
extra->clicked().preventPropagation();
extra->clicked().connect(this, &CalendarCell::showAllEntriesDialog);
break;
}
WString format = EntryDialog::timeFormat;
addWidget(new WText((*i)->start.toString(format) +
"-" +
(*i)->stop.toString(format) +
": " + (*i)->summary));
}
transaction.commit();
}
示例3: selectInCurrentMonth
void WCalendar::selectInCurrentMonth(const WDate& d)
{
if (d.month() == currentMonth_ && selectionMode_ != NoSelection) {
if (selectionMode_ == ExtendedSelection) {
if (isSelected(d))
selection_.erase(d);
else
selection_.insert(d);
} else {
selection_.clear();
selection_.insert(d);
}
renderMonth();
selectionChanged().emit();
}
}
示例4: renderCell
WWidget* WCalendar::renderCell(WWidget* widget, const WDate& date)
{
WText* t = dynamic_cast<WText*>(widget);
if (!t) {
t = new WText();
t->setInline(false);
t->setTextFormat(PlainText);
}
#ifndef WT_TARGET_JAVA
char buf[30];
#else
char *buf;
#endif // WT_TARGET_JAVA
Utils::itoa(date.day(), buf);
t->setText(WString::fromUTF8(buf));
std::string styleClass;
if (isInvalid(date))
styleClass += " Wt-cal-oor";
else if (date.month() != currentMonth())
styleClass += " Wt-cal-oom";
if (isSelected(date))
styleClass += " Wt-cal-sel";
WDate currentDate = WDate::currentDate();
if (date.day() == currentDate.day() && date.month() == currentDate.month() &&
date.year() == currentDate.year()) {
if (!isSelected(date))
styleClass += " Wt-cal-now";
t->setToolTip(WString::tr("Wt.WCalendar.today"));
} else
t->setToolTip("");
t->setStyleClass(styleClass.c_str());
return t;
}
示例5: create
void WCalendar::create()
{
selectionMode_ = SingleSelection;
singleClickSelect_ = false;
horizontalHeaderFormat_ = ShortDayNames;
firstDayOfWeek_ = 1;
cellClickMapper_ = 0;
cellDblClickMapper_ = 0;
WDate currentDay = WDate::currentDate();
currentYear_ = currentDay.year();
currentMonth_ = currentDay.month();
WStringStream text;
text <<
"<table class=\"days ${table-class}\" cellspacing=\"0\" cellpadding=\"0\">"
"""<tr>"
"" "<th class=\"caption\">${nav-prev}</th>"
"" "<th class=\"caption\"colspan=\"5\">${month} ${year}</th>"
"" "<th class=\"caption\">${nav-next}</th>"
"""</tr>"
"""<tr>";
for (int j = 0; j < 7; ++j)
text <<
"<th title=\"${t" << j << "}\" scope=\"col\">${d" << j << "}</th>";
text << "</tr>";
for (int i = 0; i < 6; ++i) {
text << "<tr>";
for (int j = 0; j < 7; ++j)
text << "<td>${c" << (i * 7 + j) << "}</td>";
text << "</tr>";
}
text << "</table>";
setImplementation(impl_ = new WTemplate());
impl_->setTemplateText(WString::fromUTF8(text.str()), XHTMLUnsafeText);
impl_->setStyleClass("Wt-cal");
setSelectable(false);
WText *prevMonth = new WText(tr("Wt.WCalendar.PrevMonth"));
prevMonth->setStyleClass("Wt-cal-navbutton");
prevMonth->clicked().connect(this, &WCalendar::browseToPreviousMonth);
WText *nextMonth = new WText(tr("Wt.WCalendar.NextMonth"));
nextMonth->setStyleClass("Wt-cal-navbutton");
nextMonth->clicked().connect(this, &WCalendar::browseToNextMonth);
monthEdit_ = new WComboBox();
monthEdit_->setInline(true);
for (unsigned i = 0; i < 12; ++i)
monthEdit_->addItem(WDate::longMonthName(i+1));
monthEdit_->activated().connect(this, &WCalendar::monthChanged);
monthEdit_->setDisabled(!WApplication::instance()->environment().ajax());
yearEdit_ = new WInPlaceEdit("");
yearEdit_->setButtonsEnabled(false);
yearEdit_->lineEdit()->setTextSize(4);
yearEdit_->setStyleClass("Wt-cal-year");
yearEdit_->valueChanged().connect(this, &WCalendar::yearChanged);
impl_->bindWidget("nav-prev", prevMonth);
impl_->bindWidget("nav-next", nextMonth);
impl_->bindWidget("month", monthEdit_);
impl_->bindWidget("year", yearEdit_);
setHorizontalHeaderFormat(horizontalHeaderFormat_);
setFirstDayOfWeek(firstDayOfWeek_);
}
示例6: render
void WCalendar::render(WFlags<RenderFlag> flags)
{
if (needRenderMonth_) {
bool create = cellClickMapper_ == 0;
#ifndef WT_TARGET_JAVA
char buf[30];
#else
char *buf;
#endif // WT_TARGET_JAVA
if (create) {
// FIXME catch events only on container, and use 'tid' to identify
// the cell -- in Ajax mode
cellClickMapper_ = new WSignalMapper<Coordinate>(this);
cellClickMapper_->mapped().connect(this, &WCalendar::cellClicked);
cellDblClickMapper_ = new WSignalMapper<Coordinate>(this);
cellDblClickMapper_->mapped().connect(this, &WCalendar::cellDblClicked);
}
int m = currentMonth_ - 1;
if (monthEdit_->currentIndex() != m)
monthEdit_->setCurrentIndex(m);
int y = currentYear_;
Utils::itoa(y, buf);
if (yearEdit_->text().toUTF8() != buf)
yearEdit_->setText(WString::fromUTF8(buf));
WDate todayd = WDate::currentDate();
date today(todayd.year(), todayd.month(), todayd.day());
// The first line contains the last day of the previous month.
date d(currentYear_, currentMonth_, 1);
d -= date_duration(1);
greg_weekday gw = firstDayOfWeek_ % 7;
d = previous_weekday(d, gw);
for (unsigned i = 0; i < 6; ++i) {
for (unsigned j = 0; j < 7; ++j) {
Utils::itoa(i * 7 + j, buf);
std::string cell = std::string("c") + buf;
WDate date(d.year(), d.month(), d.day());
WWidget *w = impl_->resolveWidget(cell);
WWidget *rw = renderCell(w, date);
impl_->bindWidget(cell, rw);
WInteractWidget* iw = dynamic_cast<WInteractWidget*>(rw->webWidget());
if (iw && iw != w) {
if (clicked().isConnected()
|| (selectionMode_ == ExtendedSelection)
|| (selectionMode_ != ExtendedSelection && singleClickSelect_
&& activated().isConnected()))
cellClickMapper_
->mapConnect(iw->clicked(), Coordinate(i, j));
if ((selectionMode_ != ExtendedSelection && !singleClickSelect_
&& (activated().isConnected() ||
selectionChanged().isConnected())))
cellDblClickMapper_
->mapConnect(iw->doubleClicked(), Coordinate(i, j));
}
d += date_duration(1);
}
}
needRenderMonth_ = false;
}
WCompositeWidget::render(flags);
}