* wl-summary.el (wl-summary-mark-as-read-all): Follow the API
[elisp/wanderlust.git] / elmo / elmo-net.el
index a479597..6d04129 100644 (file)
@@ -402,37 +402,16 @@ Returned value is searched from `elmo-network-stream-type-alist'."
                 (elmo-dop-spool-folder-list-messages folder))))
     t))
 
-(luna-define-method elmo-folder-list-unreads :around ((folder
-                                                      elmo-net-folder))
+(luna-define-method elmo-folder-list-flagged-internal ((folder elmo-net-folder)
+                                                      flag)
   (if (and (elmo-folder-plugged-p folder)
           (elmo-folder-use-flag-p folder))
-      (elmo-folder-send folder 'elmo-folder-list-unreads-plugged)
-    (luna-call-next-method)))
-
-(luna-define-method elmo-folder-list-importants :around ((folder
-                                                         elmo-net-folder))
-  (if (and (elmo-folder-plugged-p folder)
-          (elmo-folder-use-flag-p folder))
-      (elmo-folder-send folder 'elmo-folder-list-importants-plugged)
-    (luna-call-next-method)))
-
-(luna-define-method elmo-folder-list-answereds :around ((folder
-                                                        elmo-net-folder))
-  (if (and (elmo-folder-plugged-p folder)
-          (elmo-folder-use-flag-p folder))
-      (elmo-folder-send folder 'elmo-folder-list-answereds-plugged)
-    (luna-call-next-method)))
-
-(luna-define-method elmo-folder-list-unreads-plugged
-  ((folder elmo-net-folder))
-  t)
-
-(luna-define-method elmo-folder-list-importants-plugged
-  ((folder elmo-net-folder))
-  t)
+      (elmo-folder-send folder 'elmo-folder-list-flagged-plugged flag)
+    ;; Should consider offline append and removal?
+    t))
 
-(luna-define-method elmo-folder-list-answereds-plugged
-  ((folder elmo-net-folder))
+(luna-define-method elmo-folder-list-flagged-plugged ((folder elmo-net-folder)
+                                                     flag)
   t)
 
 (luna-define-method elmo-folder-delete-messages ((folder elmo-net-folder)
@@ -464,102 +443,39 @@ Returned value is searched from `elmo-network-stream-type-alist'."
                             (mapcar 'abs numbers)
                             flag-table)))
 
-(luna-define-method elmo-folder-unflag-important :before ((folder
-                                                          elmo-net-folder)
-                                                         numbers
-                                                         &optional
-                                                         is-local)
-  (when (and (elmo-folder-use-flag-p folder)
-            (not is-local))
-    (if (elmo-folder-plugged-p folder)
-       (elmo-folder-send folder 'elmo-folder-unflag-important-plugged
-                         numbers)
-      (elmo-folder-send folder
-                       'elmo-folder-unflag-important-unplugged numbers))))
-
-(luna-define-method elmo-folder-flag-as-important :before ((folder
-                                                           elmo-net-folder)
-                                                          numbers
-                                                          &optional
-                                                          is-local)
-  (when (and (elmo-folder-use-flag-p folder)
-            (not is-local))
-    (if (elmo-folder-plugged-p folder)
-       (elmo-folder-send folder 'elmo-folder-flag-as-important-plugged
-                         numbers)
-      (elmo-folder-send folder 'elmo-folder-flag-as-important-unplugged
-                       numbers))))
-
-(luna-define-method elmo-folder-unflag-read :before ((folder elmo-net-folder)
-                                                    numbers
-                                                    &optional is-local)
-  (when (and (elmo-folder-use-flag-p folder)
-            (not is-local))
-    (if (elmo-folder-plugged-p folder)
-       (elmo-folder-send folder 'elmo-folder-unflag-read-plugged numbers)
-      (elmo-folder-send folder 'elmo-folder-unflag-read-unplugged numbers))))
-
-(luna-define-method elmo-folder-flag-as-read :before ((folder elmo-net-folder)
-                                                     numbers
-                                                     &optional is-local)
-  (when (and (elmo-folder-use-flag-p folder)
-            (not is-local))
-    (if (elmo-folder-plugged-p folder)
-       (elmo-folder-send folder 'elmo-folder-flag-as-read-plugged numbers)
-      (elmo-folder-send
-       folder 'elmo-folder-flag-as-read-unplugged numbers))))
-
-(luna-define-method elmo-folder-unflag-answered :before ((folder
-                                                         elmo-net-folder)
-                                                        numbers
-                                                        &optional is-local)
-  (when (and (elmo-folder-use-flag-p folder)
-            (not is-local))
-    (if (elmo-folder-plugged-p folder)
-       (elmo-folder-send folder 'elmo-folder-unflag-answered-plugged
-                         numbers)
-      (elmo-folder-send folder
-                       'elmo-folder-unflag-answered-unplugged numbers))))
-
-(luna-define-method elmo-folder-flag-as-answered :before ((folder
-                                                          elmo-net-folder)
-                                                         numbers
-                                                         &optional is-local)
-  (when (and (elmo-folder-use-flag-p folder)
-            (not is-local))
-    (if (elmo-folder-plugged-p folder)
-       (elmo-folder-send folder 'elmo-folder-flag-as-answered-plugged
-                         numbers)
-      (elmo-folder-send folder 'elmo-folder-flag-as-answered-unplugged
-                       numbers))))
-
-(luna-define-method elmo-folder-flag-as-read-unplugged ((folder
-                                                        elmo-net-folder)
-                                                       numbers)
-  (elmo-folder-flag-as-read-dop folder numbers))
-
-(luna-define-method elmo-folder-unflag-read-unplugged ((folder elmo-net-folder)
-                                                    numbers)
-  (elmo-folder-unflag-read-dop folder numbers))
-
-(luna-define-method elmo-folder-flag-as-important-unplugged ((folder
-                                                             elmo-net-folder)
-                                                            numbers)
-  (elmo-folder-flag-as-important-dop folder numbers))
-
-(luna-define-method elmo-folder-unflag-important-unplugged ((folder
-                                                            elmo-net-folder)
-                                                           numbers)
-  (elmo-folder-unflag-important-dop folder numbers))
-
-(luna-define-method elmo-folder-flag-as-answered-unplugged ((folder
-                                                            elmo-net-folder)
-                                                           numbers)
-  (elmo-folder-flag-as-answered-dop folder numbers))
-
-(luna-define-method elmo-folder-unflag-answered-unplugged
-  ((folder elmo-net-folder) numbers)
-  (elmo-folder-unflag-answered-dop folder numbers))
+(luna-define-method elmo-folder-set-flag :before ((folder elmo-net-folder)
+                                                 numbers
+                                                 flag
+                                                 &optional is-local)
+  (when (and (not is-local)
+            (elmo-folder-use-flag-p folder))
+    (elmo-folder-send folder
+                     (if (elmo-folder-plugged-p folder)
+                         'elmo-folder-set-flag-plugged
+                       'elmo-folder-set-flag-unplugged)
+                     numbers
+                     flag)))
+
+(luna-define-method elmo-folder-unset-flag :before ((folder elmo-net-folder)
+                                                   numbers
+                                                   flag
+                                                   &optional is-local)
+  (when (and (not is-local)
+            (elmo-folder-use-flag-p folder))
+    (elmo-folder-send folder
+                     (if (elmo-folder-plugged-p folder)
+                         'elmo-folder-unset-flag-plugged
+                       'elmo-folder-unset-flag-unplugged)
+                     numbers
+                     flag)))
+
+(luna-define-method elmo-folder-set-flag-unplugged ((folder elmo-net-folder)
+                                                   numbers flag)
+  (elmo-folder-set-flag-dop folder numbers flag))
+
+(luna-define-method elmo-folder-unset-flag-unplugged ((folder elmo-net-folder)
+                                                     numbers flag)
+  (elmo-folder-unset-flag-dop folder numbers flag))
 
 (luna-define-method elmo-message-encache :around ((folder elmo-net-folder)
                                                  number &optional read)