diff --git a/src/gui/value/multiple_choice.cpp b/src/gui/value/multiple_choice.cpp index 06f20d61..c046f8b3 100644 --- a/src/gui/value/multiple_choice.cpp +++ b/src/gui/value/multiple_choice.cpp @@ -113,6 +113,9 @@ void MultipleChoiceValueEditor::determineSize(bool force_fit) { bool MultipleChoiceValueEditor::onLeftDown(const RealPoint& pos, wxMouseEvent& ev) { // find item under cursor if (style().render_style & RENDER_CHECKLIST) { + // TODO: determine actual item height + if (item_height == 0) item_height = 16; + int id = (int)(pos.y / item_height); int end = field().choices->lastId(); if (id >= 0 && id < end) { diff --git a/src/render/value/multiple_choice.cpp b/src/render/value/multiple_choice.cpp index 741aaf95..0d7320ea 100644 --- a/src/render/value/multiple_choice.cpp +++ b/src/render/value/multiple_choice.cpp @@ -52,8 +52,8 @@ void MultipleChoiceValueViewer::draw(RotatedDC& dc) { void MultipleChoiceValueViewer::drawChoice(RotatedDC& dc, RealPoint& pos, const String& choice, bool active) { RealSize size; size.height = item_height; - if (nativeLook() && (style().render_style & RENDER_CHECKLIST)) { - wxRect rect = dc.trRectStraight(RealRect(pos + RealSize(1,1), RealSize(12,12))); + if (style().render_style & RENDER_CHECKLIST) { + wxRect rect = dc.trRectToBB(RealRect(pos + RealSize(1,1), RealSize(12,12))); draw_checkbox(nullptr, dc.getDC(), rect, active); // TODO size = add_horizontal(size, RealSize(14,16)); } @@ -63,12 +63,12 @@ void MultipleChoiceValueViewer::drawChoice(RotatedDC& dc, RealPoint& pos, const // TODO: caching GeneratedImage::Options options(0,0, &getStylePackage(), &getLocalPackage()); options.zoom = dc.getZoom(); - options.angle = dc.trAngle(style().angle); + options.angle = dc.getAngle(); Image image = it->second.generate(options); ImageCombine combine = it->second.combine(); // TODO : alignment? dc.DrawPreRotatedImage(image, RealRect(pos.x + size.width, pos.y, options.width, options.height), combine == COMBINE_DEFAULT ? style().combine : combine); - size.width += options.width; + size = add_horizontal(size, dc.trInvS(RealSize(options.width,options.height))); } } if (style().render_style & RENDER_TEXT) {