diff options
Diffstat (limited to 'src/CallTip.cxx')
-rw-r--r-- | src/CallTip.cxx | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/CallTip.cxx b/src/CallTip.cxx index 9fb1b535c..0596214bf 100644 --- a/src/CallTip.cxx +++ b/src/CallTip.cxx @@ -272,24 +272,14 @@ void CallTip::MouseClick(Point pt) noexcept { } PRectangle CallTip::CallTipStart(Sci::Position pos, Point pt, int textHeight, const char *defn, - const char *faceName, int size, - int codePage_, CharacterSet characterSet, - Technology technology, - const char *localeName, - const Window &wParent) { + int codePage_, Surface *surfaceMeasure, std::shared_ptr<Font> font_) { clickPlace = 0; val = defn; codePage = codePage_; - std::unique_ptr<Surface> surfaceMeasure = Surface::Allocate(technology); - surfaceMeasure->Init(wParent.GetID()); - surfaceMeasure->SetMode(SurfaceMode(codePage, false)); highlight = Chunk(); inCallTipMode = true; posStartCallTip = pos; - const XYPOSITION deviceHeight = static_cast<XYPOSITION>(surfaceMeasure->DeviceHeightFont(size)); - const FontParameters fp(faceName, deviceHeight / FontSizeMultiplier, FontWeight::Normal, - false, FontQuality::QualityDefault, technology, characterSet, localeName); - font = Font::Allocate(fp); + font = font_; // Look for multiple lines in the text // Only support \n here - simply means container must avoid \r! const int numLines = 1 + static_cast<int>(std::count(val.begin(), val.end(), '\n')); @@ -300,7 +290,7 @@ PRectangle CallTip::CallTipStart(Sci::Position pos, Point pt, int textHeight, co #if !PLAT_CURSES widthArrow = lineHeight * 9 / 10; #endif - const int width = PaintContents(surfaceMeasure.get(), false) + insetX; + const int width = PaintContents(surfaceMeasure, false) + insetX; // The returned // rectangle is aligned to the right edge of the last arrow encountered in |