Index: EditorMainFormU.dfm
===================================================================
--- EditorMainFormU.dfm	(revision 12678)
+++ EditorMainFormU.dfm	(working copy)
@@ -362,8 +362,10 @@
       AllowAllUp = True
       Caption = 'Underline'
       GroupIndex = 7
+      DropDownMenu = UnderlineStyle
       Hint = 'Underline'
       ImageIndex = 15
+      MarkDropDown = False
       Spacing = 1
       Left = 276
       Top = 5
@@ -532,6 +534,11 @@
         Caption = 'Save Selec&ted...'
         OnClick = FileSaveSelected
       end
+      object ExportToHtmlItem: TMenuItem
+        Tag = -1
+        Caption = 'Export to HTML...'
+        OnClick = ExportToHtmlItemClick
+      end
       object N1: TMenuItem
         Tag = -1
         Caption = '-'
@@ -1873,4 +1880,20 @@
     Left = 120
     Top = 128
   end
+  object UnderlineStyle: TJvPopupMenu
+    OnPopup = UnderlineStylePopup
+    Style = msXP
+    ImageMargin.Left = 0
+    ImageMargin.Top = 0
+    ImageMargin.Right = 0
+    ImageMargin.Bottom = 0
+    ImageSize.Height = 16
+    ImageSize.Width = 16
+    Left = 148
+    Top = 128
+  end
+  object JvRichEditToHtml1: TJvRichEditToHtml
+    Left = 176
+    Top = 128
+  end
 end
Index: EditorMainFormU.pas
===================================================================
--- EditorMainFormU.pas	(revision 12678)
+++ EditorMainFormU.pas	(working copy)
@@ -33,7 +33,9 @@
   ImgList, Controls, Menus, JvMenus, ComCtrls, ExtCtrls, Classes, ActiveX,
   JvComponent, JvAppEvent, JvMaskEdit, JvSpin, JvCombobox, JvColorCombo,
   JvSpeedBar, JvRichEdit, JvClipboardMonitor, JvExMask, JvExStdCtrls,
-  JvExExtCtrls, XPColorMenuItemPainter;
+  JvExExtCtrls, XPColorMenuItemPainter, 
+  JvComponentBase, JvExtComponent,
+  JvRichEditToHtml, JvDialogs;
 
 type
   TEditorMainForm = class(TForm)
@@ -118,6 +120,9 @@
     App: TJvAppEvents;
     FormatTabsItem: TMenuItem;
     JustifyBtn: TJvSpeedItem;
+    UnderlineStyle: TJvPopupMenu;
+    JvRichEditToHtml1: TJvRichEditToHtml;
+    ExportToHtmlItem: TMenuItem;
     procedure SelectionChange(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure ShowHint(Sender: TObject);
@@ -192,6 +197,8 @@
     procedure EditorGetDragDropEffect(Sender: TObject;
       ShiftState: TShiftState; var AllowedEffects: TRichDropEffects;
       var Handled: Boolean);
+    procedure ExportToHtmlItemClick(Sender: TObject);
+    procedure UnderlineStylePopup(Sender: TObject);
   private
     FFileName: string;
     FUpdating: Boolean;
@@ -254,6 +261,10 @@
     clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite,
     clWindow);
 
+  UnderlineTypes: array[TUnderlineType] of string =
+     ('None', 'Solid', 'Word', 'Double', 'Dotted', 'Dash',
+    'DashDot', 'DashDotDot', 'Wave', 'Thick');
+
 function ColorName(Color: TColor): string;
 begin
   if (Color = clWindowText) or (Color = clWindow) or (Color = clDefault) then
@@ -699,6 +710,19 @@
       Add(Item);
     end;
   end;
+  with UnderlineStyle.Items do
+  begin
+    while Count > 0 do
+      Items[Count - 1].Free;
+    for I := 0 to 9 do
+    begin
+      Item := NewItem(UnderlineTypes[TUnderlineType(I)], scNone,
+        False, True, UnderlineButtonClick, 0, '');
+      Item.RadioItem := True;
+      Item.Tag := I;
+      Add(Item);
+    end;
+  end;
   FClipboardMonitor := TJvClipboardMonitor.Create(Self);
   FClipboardMonitor.OnChange := ClipboardChanged;
   SuperscriptBtn.Enabled := RichEditVersion >= 2;
@@ -1084,6 +1108,11 @@
 begin
   if FUpdating then
     Exit;
+  if Sender is TMenuItem then
+  begin
+    CurrText.UnderlineType := TUnderlineType(TMenuItem(Sender).Tag);
+  end
+  else
   if UnderlineBtn.Down then
     CurrText.Style := CurrText.Style + [fsUnderline]
   else
@@ -1238,4 +1267,30 @@
   Handled := True;
 end;
 
+procedure TEditorMainForm.ExportToHtmlItemClick(Sender: TObject);
+const
+  cHtmlExportFilter = 'HTML documents|*.HTML;*.HTM';
+  cHtmlExportTitle = 'Where to save exported HTML?';
+  cHtmlExportExt = 'HTML';
+var
+  tmpHtmlFilename: string;
+begin
+  if PromptForFileName(tmpHtmlFilename, cHtmlExportFilter,cHtmlExportExt,cHtmlExportTitle,
+    '',True) then
+  begin
+    JvRichEditToHtml1.ConvertToHtml(self.Editor, tmpHtmlFilename);
+    RichEditChange(nil);
+  end;
+end;
+
+procedure TEditorMainForm.UnderlineStylePopup(Sender: TObject);
+var
+  I: Integer;
+  UT: TUnderlineType;
+begin
+  UT := CurrText.UnderlineType;
+  for I := 0 to 9 do
+    UnderlineStyle.Items[I].Checked := (UT =  TUnderlineType(i) );
+end;
+
 end.
