From 9d15baf212b0497b15a7c0f57d2cfd17c1f73210 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr>
Date: Mon, 30 Nov 2020 18:10:47 +0100
Subject: [PATCH] [dome] styling sidebar items

---
 ivette/src/dome/src/renderer/frame/sidebars.tsx |  6 ++++++
 ivette/src/renderer/Globals.tsx                 | 12 ++++++++----
 ivette/src/renderer/style.css                   |  4 ++++
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/ivette/src/dome/src/renderer/frame/sidebars.tsx b/ivette/src/dome/src/renderer/frame/sidebars.tsx
index 9a4adecb49e..52dc2b2cd91 100644
--- a/ivette/src/dome/src/renderer/frame/sidebars.tsx
+++ b/ivette/src/dome/src/renderer/frame/sidebars.tsx
@@ -171,6 +171,10 @@ export interface ItemProps {
   onSelection?: () => void;
   /** Right-click callback. */
   onContextMenu?: () => void;
+  /** Additional class. */
+  className?: string;
+  /** Additional styles. */
+  style?: React.CSSProperties;
   /** Other item elements. */
   children?: React.ReactNode;
 }
@@ -185,10 +189,12 @@ export function Item(props: ItemProps) {
     'dome-xSideBarItem',
     selected ? 'dome-active' : 'dome-inactive',
     isDisabled && 'dome-disabled',
+    props.className,
   );
   return (
     <div
       className={className}
+      style={props.style}
       title={props.title}
       onContextMenu={onContextMenu}
       onClick={onClick}
diff --git a/ivette/src/renderer/Globals.tsx b/ivette/src/renderer/Globals.tsx
index 44f4747d962..e610aae6065 100644
--- a/ivette/src/renderer/Globals.tsx
+++ b/ivette/src/renderer/Globals.tsx
@@ -114,15 +114,19 @@ export default () => {
   // Items
   const current: undefined | string = selection?.current?.function;
   const makeFctItem = (fct: functionsData) => {
-    const { name } = fct;
+    const { name, signature } = fct;
+    const isMain = 0 < signature.indexOf("/* main */");
     return (
       <Item
+        className={isMain ? 'fct-main' : undefined}
         key={name}
         label={name}
-        title={fct.signature}
+        title={signature}
         selected={name === current}
         onSelection={() => updateSelection({ location: { function: name } })}
-      />
+      >
+        {isMain && '(main)'}
+      </Item>
     );
   };
 
@@ -131,7 +135,7 @@ export default () => {
   const filtered = fcts.filter(showFunction);
   const nTotal = fcts.length;
   const nFilter = filtered.length;
-  const title = `Filtered ${nFilter} / ${nTotal}`;
+  const title = `Functions ${nFilter} / ${nTotal}`;
   return (
     <Section
       label="Functions"
diff --git a/ivette/src/renderer/style.css b/ivette/src/renderer/style.css
index 09df391d8df..1c0d4865b12 100644
--- a/ivette/src/renderer/style.css
+++ b/ivette/src/renderer/style.css
@@ -36,4 +36,8 @@
     border-bottom: solid 0.2em #BBB;
 }
 
+.fct-main label {
+    text-decoration: underline;
+}
+
 /* -------------------------------------------------------------------------- */
-- 
GitLab