Beispiel #1
0
  public void mouseMove(final int x, final int y) {

    for (int i = 0; i < mMonthEntries.size(); i++) {
      MonthEntry mEntry = (MonthEntry) mMonthEntries.get(i);
      if (isInside(x, y, mEntry.getRect())) {
        mHoverEntry = mEntry;
        mAboveRun = false;
        mBelowRun = false;
        redraw();
        return;
      }
    }
    mHoverEntry = null;

    if (!CalendarCombo.OS_CARBON) {
      if (y < getLocation().y) {
        runAbove();
      } else {
        runBelow();
      }
    }
  }
Beispiel #2
0
  private void drawDates(GC gc) {
    int y = mTopDateSpacer;
    int spacer = 2;

    Calendar temp = Calendar.getInstance(mLocale);
    temp.setTime(mStart.getTime());

    temp.add(Calendar.MONTH, -3);

    if (!CalendarCombo.OS_CARBON) {
      gc.setFont(mSettings.getWindowsMonthPopupDrawFont());
    } else gc.setFont(mSettings.getCarbonDrawFont());

    gc.setForeground(ColorCache.getBlack());

    mMonthEntries.clear();

    // gc.setBackground(ColorCache.getWhite());
    // gc.fillRectangle(bounds);

    for (int i = 0; i < mMonthsToShow; i++) {
      int mo = temp.get(Calendar.MONTH);
      String toDraw = mMonths[mo] + " " + temp.get(Calendar.YEAR);
      Point p = gc.stringExtent(toDraw);

      // center the text in the available space
      int rest = mInnerWidth - p.x;
      rest /= 2;

      Rectangle rect = new Rectangle(0, y - 1, mBounds.width, p.y + 1);

      if (mHoverEntry != null) {
        // draw hover entry
        if (mHoverEntry.getRect().equals(rect)) {
          gc.setBackground(ColorCache.getBlack());
          gc.fillRectangle(mHoverEntry.getRect());
          gc.setBackground(ColorCache.getWhite());
          gc.setForeground(ColorCache.getWhite());
          // lastHoverRect = hoverEntry.getRect();
          mSelectedMonth = mHoverEntry.getCalendar();
        }
      } else {
        // draw today
        if (i == 3) {
          gc.setBackground(ColorCache.getBlack());
          gc.fillRectangle(rect);
          gc.setBackground(ColorCache.getWhite());
          gc.setForeground(ColorCache.getWhite());
        }
      }

      gc.drawString(toDraw, rest, y, true);
      gc.setForeground(ColorCache.getBlack());

      MonthEntry me = new MonthEntry(temp);
      me.setRect(rect);
      me.setyPos(y);
      me.setText(toDraw);
      mMonthEntries.add(me);

      temp.add(Calendar.MONTH, 1);
      y += p.y + spacer;
    }
  }