added scrollbar to NativeLookEditor

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@223 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2007-03-21 23:40:17 +00:00
parent 0c6068d6a2
commit 3f0c284a50
24 changed files with 204 additions and 96 deletions
+4 -4
View File
@@ -382,7 +382,7 @@ bool TextViewer::prepareLinesScale(RotatedDC& dc, const vector<CharInfo>& chars,
accept_word = true;
}
// Add size of the character
word_size = addHorizontal(word_size, c.size);
word_size = add_horizontal(word_size, c.size);
positions_word.push_back(word_size.width);
// Did the word become too long?
if (style.field().multi_line && !break_now) {
@@ -411,7 +411,7 @@ bool TextViewer::prepareLinesScale(RotatedDC& dc, const vector<CharInfo>& chars,
line.positions.push_back(line_size.width + p);
}
// add size; next word
line_size = addHorizontal(line_size, word_size);
line_size = add_horizontal(line_size, word_size);
word_size = RealSize(0, 0);
word_start = i + 1;
positions_word.clear();
@@ -445,7 +445,7 @@ bool TextViewer::prepareLinesScale(RotatedDC& dc, const vector<CharInfo>& chars,
FOR_EACH(p, positions_word) {
line.positions.push_back(line_size.width + p);
}
line_size = addHorizontal(line_size, word_size);
line_size = add_horizontal(line_size, word_size);
// the last line
if (line_size.height < 0.01 && !lines.empty()) {
// if a line has 0 height, use the height of the line above it, but at most once
@@ -477,7 +477,7 @@ void TextViewer::alignLines(RotatedDC& dc, const vector<CharInfo>& chars, const
if (l.line_height) break; // not an empty line
}
// amount to shift all lines vertically
RealSize s = addDiagonal(
RealSize s = add_diagonal(
dc.getInternalSize(),
-RealSize(style.padding_left+style.padding_right, style.padding_top + style.padding_bottom));
double vdelta = align_delta_y(style.alignment, s.height, height);
+12 -12
View File
@@ -41,12 +41,11 @@ void MultipleChoiceValueViewer::draw(RotatedDC& dc) {
}
void MultipleChoiceValueViewer::drawChoice(RotatedDC& dc, RealPoint& pos, const String& choice, bool active) {
double margin = 0, height = 0;
RealSize size;
if (nativeLook() && (style().render_style & RENDER_CHECKLIST)) {
height = 10;
margin = 11;
wxRect rect = dc.tr(RealRect(pos,RealSize(10,10)));
wxRect rect = dc.tr(RealRect(pos + RealSize(1,1), RealSize(12,12)));
draw_checkbox(nullptr, dc.getDC(), rect, active); // TODO
size = add_horizontal(size, RealSize(14,16));
}
if (style().render_style & RENDER_IMAGE) {
map<String,ScriptableImage>::iterator it = style().choice_images.find(cannocial_name_form(choice));
@@ -54,21 +53,22 @@ void MultipleChoiceValueViewer::drawChoice(RotatedDC& dc, RealPoint& pos, const
ScriptImageP i = it->second.update(viewer.getContext(), *viewer.stylesheet, 0, 0);
if (i) {
// TODO : alignment?
dc.DrawImage(i->image, pos, i->combine == COMBINE_NORMAL ? style().combine : i->combine);
margin += dc.trInvS(i->image.GetWidth()) + 1;
height = max(height, dc.trInvS(i->image.GetHeight()));
dc.DrawImage(i->image, pos + RealSize(size.width, 0), i->combine == COMBINE_NORMAL ? style().combine : i->combine);
size = add_horizontal(size, dc.trInv(RealSize(i->image.GetWidth() + 1, i->image.GetHeight())));
}
}
}
if (style().render_style & RENDER_TEXT) {
// draw text
// TODO: alignment
dc.DrawText(tr(*viewer.stylesheet, choice, capitalize(choice)), pos + RealSize(margin, 0));
// TODO: determine size
String text = tr(*viewer.stylesheet, choice, capitalize(choice));
RealSize text_size = dc.GetTextExtent(text);
dc.DrawText(text, align_in_rect(ALIGN_MIDDLE_LEFT, text_size,
RealRect(pos + RealSize(size.width + 1, 0), RealSize(0,size.height))));
size = add_horizontal(size, text_size);
}
if (style().direction == HORIZONTAL) {
pos.x += margin + style().spacing;
pos.x += size.width + style().spacing;
} else {
pos.y += height + style().spacing;
pos.y += size.height + style().spacing;
}
}