]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow setting tooltip colors in NS port
authorAlan Third <alan@idiocy.org>
Sat, 23 Dec 2017 11:00:35 +0000 (11:00 +0000)
committerAlan Third <alan@idiocy.org>
Sat, 6 Jan 2018 22:50:35 +0000 (22:50 +0000)
* src/nsfns.m (Fx_show_tip): Get face colors and apply them to the
tooltip.
* src/nsmenu.m (EmacsTooltip::setBackgroundColor):
(EmacsTooltip::setForegroundColor): New functions.
* src/nsterm.h (EmacsTooltip::setBackgroundColor):
(EmacsTooltip::setForegroundColor): New function prototypes.

src/nsfns.m
src/nsmenu.m
src/nsterm.h

index d5049a7a911ae1e4661fe6a6471afb46ab1cfdff..3ede63f9854bee34f9b6b2c5960ffbab35ffb4c7 100644 (file)
@@ -2873,6 +2873,8 @@ Text larger than the specified size is clipped.  */)
   struct frame *f;
   char *str;
   NSSize size;
+  NSColor *color;
+  Lisp_Object t;
 
   specbind (Qinhibit_redisplay, Qt);
 
@@ -2900,6 +2902,14 @@ Text larger than the specified size is clipped.  */)
   else
     Fx_hide_tip ();
 
+  t = x_get_arg (NULL, parms, Qbackground_color, NULL, NULL, RES_TYPE_STRING);
+  if (ns_lisp_to_color (t, &color) == 0)
+    [ns_tooltip setBackgroundColor: color];
+
+  t = x_get_arg (NULL, parms, Qforeground_color, NULL, NULL, RES_TYPE_STRING);
+  if (ns_lisp_to_color (t, &color) == 0)
+    [ns_tooltip setForegroundColor: color];
+
   [ns_tooltip setText: str];
   size = [ns_tooltip frame].size;
 
index 20b4e58b4795c0991289388e99b5cb8cf307ea51..5748b20ce819fb95aeed235b00b27da1414b80e2 100644 (file)
@@ -1364,6 +1364,16 @@ update_frame_tool_bar (struct frame *f)
   [textField setFrame: r];
 }
 
+- (void) setBackgroundColor: (NSColor *)col
+{
+  [textField setBackgroundColor: col];
+}
+
+- (void) setForegroundColor: (NSColor *)col
+{
+  [textField setTextColor: col];
+}
+
 - (void) showAtX: (int)x Y: (int)y for: (int)seconds
 {
   NSRect wr = [win frame];
index bef2c1011bc68079d25fdafb47f8368939091c77..878923cbb413285f107085509cf6ac16688521c7 100644 (file)
@@ -585,6 +585,8 @@ typedef id instancetype;
   }
 - (instancetype) init;
 - (void) setText: (char *)text;
+- (void) setBackgroundColor: (NSColor *)col;
+- (void) setForegroundColor: (NSColor *)col;
 - (void) showAtX: (int)x Y: (int)y for: (int)seconds;
 - (void) hide;
 - (BOOL) isActive;